文章目录
logback的默认配置
如果没有自己定义logback的配置文件, logback 默认地会调用BasicConfigurator ,创建一个最小化配置。最小化配置由一个关联到根 logger 的ConsoleAppender 组成,调用PatternLayoutEncoder机械能格式化。root logger 默认级别是 DEBUG。
输出格式:%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
返回结果:14:24:19.510 [main] WARN com.zhufeng.test.LogTest - logback日志打印...
详细配置
根节点 configuration
包含下面三个属性:
- scan: 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。
- scanPeriod: 设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。
- debug: 当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。
示例:
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!--其他配置省略-->
</configuration>
子节点 contextName
用来设置上下文名称,每个logger都关联到logger上下文,默认上下文名称为default。可以使用< contextName>设置成其他名字,用于区分不同应用程序的记录。
示例:
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<contextName>testName</contextName>
<!--其他配置省略-->
</configuration>
子节点 property
用来定义变量值,它有两个属性,通过< property>定义的值会被插入到logger上下文中,可以使“${}”来使用变量。
- name: 变量的名称
- value: 变量定义的值
示例
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<property name="APP_Name" value="testName" />
<contextName>${APP_Name}</contextName>
<!--其他配置省略-->
</configuration>
子节点 timestamp
获取时间戳字符串,他有两个属性
- key: 标识此< timestamp> 的名字;
- datePattern: 设置将当前时间(解析配置文件的时间)转换为字符串的模式,遵循java.txt.SimpleDateFormat的格式。
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<timestamp key="bySecond" datePattern="yyyyMMdd'T'HHmmss"/>
<contextName>${bySecond}