默认日志Logback配置
默认日志Logback
Logback是log4j框架的作者开发的新一代日志框架,它效率更高、能够适应诸多的运行环境,同时天然支持SLF4J(Simple Logging Facade For Java)。
-
与Log4J比较,优点如下:
- 同样的代码路径,Logback 执行更快
- 更充分的测试
- 原生实现了 SLF4J API(Log4J 还需要有一个中间转换层)
- 内容更丰富的文档
- 支持 XML 或者 Groovy 方式配置
- 配置文件自动热加载
- 从 IO 错误中优雅恢复
- 自动删除日志归档
- 自动压缩日志成为归档文件
- 支持 Prudent 模式,使多个 JVM 进程能记录同一个日志文件
- 支持配置文件中加入条件判断来适应不同的环境
- 更强大的过滤器
- 支持 SiftingAppender(可筛选 Appender)
- 异常栈信息带有包信息
-
配置输出的地址和输出级别
在
application.properties中添加如下配置:logging.path=/user/local/log
logging.level.com.favorites=DEBUG
logging.level.org.springframework.web=INFO
logging.level.org.hibernate=ERROR-
日志级别从低到高
TRACE < DEBUG < INFO < WARN < ERROR < FATAL
如果一个 logger 允许打印一条具有某个日志级别的信息,那么它也必须允许打印具有比这个日志级别更高级别的信息,而不允许打印具有比这个日志级别更低级别的信息。
-
级别控制
logging.level.* = LEVEL
-
logging.level:日志级别控制前缀,*为包名或Logger名; -
LEVEL:选项TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF;
-
-
自定义日志配置
根据不同的日志系统,按如下规则组织配置文件名后,将文件放入src/main/resources目录下,可被系统正确加载。
-
Logback:logback-spring.xml, logback-spring.groovy, logback.xml, logback.groovy
-
Log4j:log4j-spring.properties, log4j-spring.xml, log4j.properties, log4j.xml
-
Log4j2:log4j2-spring.xml, log4j2.xml
-
JDK (Java Util Logging):logging.properties
使用自定义配置文件名,如logging-config.xml。在application.properties中添加如下配置:
logging.config=classpath:logging-config.xml
配置文件如下:
-
根节点
<configuration>包含的属性-
scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。 -
scanPeriod:设置监测配置文件是否有修改的时间间隔。如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效,默认的时间间隔为1分钟。 -
debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态,默认值为false。
-
-
设置上下文名称
<contextName>每个logger都关联到logger上下文,默认上下文名称为
default。但可以使用<contextName>设置成其他名字,用于区分不同应用程序的记录。一旦设置,不能修改,可以通过%contextName来打印日志上下文名称。 -
设置变量
<property>用来定义变量值的标签,
<property>有两个属性,name和value;其中name的值是变量的名称,value的值时变量定义的值。通过<property>定义的值会被插入到logger上下文中。定义变量后,可以使${}来使用变量。 -
子节点
<appender>appender用来格式化日志输出节点,有俩个属性
name和class,class用来指定哪种输出策略,常用就是控制台输出策略和文件输出策略。-
<encoder>表示对日志进行格式化编码-
%d{HH: mm:ss.SSS}——日志输出时间 -
%thread——输出日志的进程名字,这在Web应用以及异步任务处理中很有用 -
%-5level——日志级别,并且使用5个字符靠左对齐 -
%logger{50}——表示logger名字最长50个字符,否则按照句点分割。 -
%msg——日志消息
-
%n——平台的换行符 -
-
-
子节点
<root>root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性。
<root>可以包含零个或多个<appender-ref>元素,标识这个appender将会添加到这个logger。 -
子节点
<logger><logger>用来设置某一个包或者具体的某一个类的日志打印级别、以及指定<appender>。<logger>仅有一个name属性,一个可选的level和一个可选的addtivity属性。-
name:用来指定受此logger约束的某一个包或者具体的某一个类。 -
level:用来设置打印级别,大小写无关(TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF),还有一个特俗值INHERITED或者同义词NULL,代表强制执行上级的级别。如果未设置此属性,那么当前logger将会继承上级的级别。 -
addtivity:是否向上级logger传递打印信息。默认是true。
-
posted on
浙公网安备 33010602011771号