log4j

sofa-bolt源码阅读(5)-日志

浪尽此生 提交于 2020-03-07 20:43:11
6.1 日志类型 bolt的日志文件默认位于/logs/bolt目录下 文件名 说明 common-default.log 普通日志 common-error.log 错误级别日志 connection-event.log 连接相关的日志 remoting-rpc.log rpc协议相关的日志 6.2 日志实现 bolt只依赖SLF4j门面框架,可以支持三种类型的日志实现:log4j, log4j2, 和 logback。运行时根据具体项目引入的日志框架,实现日志的自适应打印。 日志隔离的功能是工具包sofa-common-tools实现的。 日志的入口类是BoltLoggerFactory private static final Logger logger = BoltLoggerFactory.getLogger("CommonDefault"); 获取名称为CommonDefault的日志,这个名称是在日志配置文件中配置的。 <AsyncLogger name="CommonDefault" level="${LOG_LEVEL}" additivity="false"> <appender-ref ref="CommonDefaultAppender"/> <appender-ref ref="ERROR-APPENDER"/> </AsyncLogger> 日志空间

Log4j2 简明教程

橙三吉。 提交于 2020-03-07 13:33:27
一、概述 log4j2官方文档内容非常多,要一次性了解全部是不可能的。正确的步骤应当是先了解最常见的配置,当发现原有知识无法解决问题,再重新查看文档看有没有合适的配置。 下面将从文件结构入手,再到简单的实例,从实例入手分析常见的配置的用途,其中涉及其中包括Appenders, Filters, Layout, Lookups的知识,最后根据学习。 可以搜索到的关于log4j2的教程非常少,这篇文章更多的是让大家对log4j2有个大体的了解,免得大家看到官方文档那么多就晕了! 欢迎关注我的github: https://github.com/benson-lin 如果觉得排版不好,可以访问:http://blog.bensonlin.me/post/log4j2-tutorial log4j2.xml文件结构 <?xml version="1.0" encoding="UTF-8"?>; <Configuration> <Properties> <Property name="name1">value</property> <Property name="name2" value="value2"/> </Properties> <Filter type="type" ... /> <Appenders> <Appender type="type" name="name">

企业开发中选择logback而不是log4j的理由

六眼飞鱼酱① 提交于 2020-03-07 07:59:48
不知道看到这篇文章的Java工程师有没有考虑过这个问题:为什么在企业开发中会选择logback来记录日志,而不是log4j呢? 如果你以前没有考虑过这个问题,那么现在如果让你考虑一下,你可能觉的会是因为什么原因呢?本文就来为你回答这个问题。 无论从设计上还是实现上,Logback相对log4j而言有了相对多的改进。不过尽管难以一一细数,这里还是列举部分理由为什么选择logback而不是log4j。牢记logback与log4j在概念上面是很相似的,它们都是有同一群开发者建立。所以如果你已经对log4j很熟悉,你也可以很快上手logback。如果你喜欢使用log4j,你也许会迷上使用logback。 1. 更快的执行速度 基于我们先前在log4j上的工作,logback 重写了内部的实现,在某些特定的场景上面,甚至可以比之前的速度快上10倍。在保证logback的组件更加快速的同时,同时所需的内存更加少。 2.更充足的测试 Logback 历经了几年,数不清小时数的测试。尽管log4j也是测试过的,但是Logback的测试更加充分,跟log4j不在同一个级别。我们认为,这正是人们选择Logback而不是log4j的最重要的原因。人们都希望即使在恶劣的条件下,你的日记框架依然稳定而可靠。 3. logback-classic 非常自然的实现了SLF4J logback

Java日志介绍(5)-commons-logging

♀尐吖头ヾ 提交于 2020-03-06 11:33:11
Apache Commons Logging(JCL) 提供了一个简单的日志抽象,允许开发人员使用特定的日志实现。JCL可以使用其他的日志实现,包括Log4J、Avalon LogKit(Avalon的日志框架)、JDK logging(JUL)。本文主要介绍JCL的简单使用方法,文中所使用到的软件版本:Java 1.8.0_191、commons-logging 1.2。 1、配置 JCL能够在初始化期间自动查找配置文件进行配置;按照优先级查找直到找到,优先级如下: 1.在classpath下寻找配置文件commons-logging.properties,并使用文件中org.apache.commons.logging.Log属性定义的Log实现类 2.查找系统环境变量org.apache.commons.logging.Log对应的Log实现类 3.查看classpath中是否有Log4j的包,如果发现,则自动使用Log4j作为日志实现类(org.apache.commons.logging.impl.Log4JLogger) 4.使用JDK自身的日志实现类(JDK1.4以后才有日志实现类)(org.apache.commons.logging.impl.Jdk14Logger) 5.使用commons-logging自己提供的一个简单的日志实现类SimpleLog(org

【解决方案】log4j2配置日志打印时区

谁都会走 提交于 2020-03-06 09:13:46
日志设置时区: <!--log4j2 配置timezone --> <property name="LOG_PATTERN" value="%date{yyyy-MM-dd HH:mm:ss.SSS}{GMT+8} %-5level [%thread] %logger{36}-[%M]-[%L] - %msg%n" /> {GMT+8} 可将日志打印日期为:GMT时间+8小时,即中国时区时间。 来源: CSDN 作者: 明天争取 链接: https://blog.csdn.net/zpwangshisuifeng/article/details/104621681

细说Java主流日志工具库

好久不见. 提交于 2020-03-05 22:03:53
目录 概述    java.util.logging (JUL)    Log4j    Logback    Log4j vs Logback    common-logging    slf4j    common-logging vs slf4j    总结 实施日志解决方案    引入jar包      slf4j直接绑定日志组件      slf4j兼容非slf4j日志组件      spring 集成 slf4j      common-logging绑定日志组件    配置      完整的logback.xml参考示例      完整的log4j.xml参考示例      logback配置参数说明    使用API      slf4j用法      common-logging用法 参考 概述 在项目开发中,为了跟踪代码的运行情况,常常要使用日志来记录信息。 在Java世界,有很多的日志工具库来实现日志功能,避免了我们重复造轮子。 我们先来逐一了解一下主流日志工具。 java.util.logging (JUL) JDK1.4开始,通过 java.util.logging 提供日志功能。 它能满足基本的日志需要,但是功能没有Log4j强大,而且使用范围也没有Log4j广泛。 Log4j Log4j是apache的一个开源项目,创始人Ceki Gulcu。

Dubbo

大憨熊 提交于 2020-03-05 21:31:16
第一章:应用架构的演进过程 1.1-单一应用架构 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是关键。 1.2-垂直应用架构 当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。此时,用于加速前端页面开发的Web框架(MVC)是关键。 1.3-分布式服务架构 当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。此时,用于提高业务复用及整合的分布式服务框架(RPC)是关键。 1.4-流动计算架构 当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。此时,用于提高机器利用率的资源调度和治理中心(SOA)是关键。 第二章:RPC(远程过程调用) 2.1-认识RPC Remote Procedure Call 远程过程调用,是分布式架构的核心,按响应方式分如下两种: 同步调用:客户端调用服务方方法,等待直到服务方返回结果或者超时,再继续自己的操作。 异步调用:客户端把消息发送给中间件,不再等待服务端返回,直接继续自己的操作。 是一种进程间的通信方式 它允许应用程序调用网络上的另一个应用程序中的方法

Spring boot:@Value 找不到值,或启动报异常

泄露秘密 提交于 2020-03-05 18:39:47
C:\Java\jdk8\bin\java.exe -agentlib:jdwp = transport = dt_socket,address = 127.0.0.1:61122,suspend = y,server = n -XX:TieredStopAtLevel = 1 -noverify -Dspring.output.ansi.enabled = always -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port = 61121 -Dcom.sun.management.jmxremote.authenticate = false -Dcom.sun.management.jmxremote.ssl = false -Djava.rmi.server.hostname = localhost -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled = true -javaagent:C:\JetBrains\IntelliJIDEA\lib\rt\debugger-agent.jar = file:/C:/Users/UYUN/AppData/Local/Temp/capture.props -Dfile

log4j2 配置文件

旧街凉风 提交于 2020-03-05 18:06:39
<?xml version="1.0" encoding="UTF-8"?> <!-- configuration 属性 monitorInterval: 置配置文件的动态加载时间(s),在程序运行过程中,如果修改配置文件,程序会随之改变。 status: 设置 log4j 日志框架内部输出的日志级别 日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL --> < configuration status = " error " monitorInterval = " 5 " > <!--配置变量--> < Properties > <!-- 配置输出格式,启动控制台颜色输出需要在 JVM 中设置:-Dlog4j.skipJansi=false --> < property name = " LOG_PATTERN " value = " %d{yyyy-MM-dd HH:mm:ss.SSS} %highlight{%-5level} [%t] %-36c{36} - %m%n " /> <!-- 定义日志存储的路径 --> < property name = " FILE_PATH " value = " 更换为你的日志路径 " /> < property name = " FILE_NAME

一秒完成springboot与logback配置

一曲冷凌霜 提交于 2020-03-05 13:25:50
1. 一秒配置与效果 1.1 一秒配置 ​ spring boot中无须添加任何依赖,直接在resources文件夹下面新建logback.xml文件,将以下代码复制过去,配置完成,可以使用了。 <?xml version="1.0" encoding="UTF-8"?> <configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <!-- encoder 默认配置为PatternLayoutEncoder --> <encoder> <pattern>%d [%thread] %msg%n</pattern> </encoder> </appender> <appender name="info_log" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <!-- rollover daily --> <FileNamePattern>log/info-%d{yyyy-MM-dd}.%i.log</FileNamePattern> <!--