logback logback.xml 常用配置详解(转)
2015-12-11 10:29
471 查看
本文转自:/article/3464062.html
当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。
scanPeriod:
设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。
debug:
当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。
例如:
<configurationscan="true"scanPeriod="60seconds"debug="false">
<!--其他配置省略-->
</configuration>
2.1设置上下文名称:
每个logger都关联到logger上下文,默认上下文名称为
<configurationscan="true"scanPeriod="60seconds"debug="false">
<contextName>myAppName</contextName>
<!--其他配置省略-->
</configuration>
2.2设置变量:
用来定义变量值的标签,
name:变量的名称
value:的值时变量定义的值。
通过
例如使用
<configurationscan="true"scanPeriod="60seconds"debug="false">
<propertyname="APP_Name"value="myAppName"/>
<contextName>${APP_Name}</contextName>
<!--其他配置省略-->
</configuration>
2.3获取时间戳字符串:
两个属性:
key:标识此
datePattern:设置将当前时间(解析配置文件的时间)转换为字符串的模式,遵循java.txt.SimpleDateFormat的格式。
例如将解析配置文件的时间作为上下文名称:
<configurationscan="true"scanPeriod="60seconds"debug="false">
<timestampkey="bySecond"datePattern="yyyyMMdd'T'HHmmss"/>
<contextName>${bySecond}</contextName>
<!--其他配置省略-->
</configuration>
用来设置某一个包或者具体的某一个类的日志打印级别、以及指定
name:
用来指定受此loger约束的某一个包或者具体的某一个类。
level:
用来设置打印级别,大小写无关:
如果未设置此属性,那么当前loger将会继承上级的级别。
addtivity:
是否向上级loger传递打印信息。默认是true。
也是元素,但是它是根loger。只有一个level属性,应为已经被命名为"root”.
level:用来设置打印级别,大小写无关:
默认是DEBUG。
例如:
LogbackDemo.java类
packagelogback;
importorg.slf4j.Logger;
importorg.slf4j.LoggerFactory;
publicclassLogbackDemo{
privatestaticLoggerlog=LoggerFactory.getLogger(LogbackDemo.class);
publicstaticvoidmain(String[]args){
log.trace("======trace");
log.debug("======debug");
log.info("======info");
log.warn("======warn");
log.error("======error");
}
}
<configuration>
<appendername="STDOUT"class="ch.qos.logback.core.ConsoleAppender">
<!--encoder默认配置为PatternLayoutEncoder-->
<encoder>
<pattern>%d{HH:mm:ss.SSS}[%thread]%-5level%logger{36}-%msg%n</pattern>
</encoder>
</appender>
<rootlevel="INFO">
<appender-refref="STDOUT"/>
</root>
</configuration>
其中appender的配置表示打印到控制台(稍后详细讲解appender);
当执行
打印结果如下:
13:30:38.484[main]INFOlogback.LogbackDemo-======info
13:30:38.500[main]WARNlogback.LogbackDemo-======warn
13:30:38.500[main]ERRORlogback.LogbackDemo-======error
其中appender的配置表示打印到控制台(稍后详细讲解appender);
没有设置addtivity,默认为true,将此loger的打印信息向上级传递;
没有设置appender,此loger本身不打印任何信息。
当执行
root接到下级传递的信息,交给已经配置好的名为“STDOUT”的appender处理,“STDOUT”appender将信息打印到控制台;
打印结果如下:
13:19:15.406[main]DEBUGlogback.LogbackDemo-======debug
13:19:15.406[main]INFOlogback.LogbackDemo-======info
13:19:15.406[main]WARNlogback.LogbackDemo-======warn
13:19:15.406[main]ERRORlogback.LogbackDemo-======error
<configuration>
<appendername="STDOUT"class="ch.qos.logback.core.ConsoleAppender">
<!--encoder默认配置为PatternLayoutEncoder-->
<encoder>
<pattern>%d{HH:mm:ss.SSS}[%thread]%-5level%logger{36}-%msg%n</pattern>
</encoder>
</appender>
<!--logback为java中的包-->
<loggername="logback"/>
<!--logback.LogbackDemo:类的全路径-->
<loggername="logback.LogbackDemo"level="INFO"additivity="false">
<appender-refref="STDOUT"/>
</logger>
<rootlevel="ERROR">
<appender-refref="STDOUT"/>
</root>
</configuration>
其中appender的配置表示打印到控制台(稍后详细讲解appender);
没有设置addtivity,默认为true,将此loger的打印信息向上级传递;
没有设置appender,此loger本身不打印任何信息。
additivity属性为false,表示此loger的打印信息不再向上级传递,
指定了名字为“STDOUT”的appender。
当执行
打印结果如下:
14:09:01.531[main]INFOlogback.LogbackDemo-======info
14:09:01.531[main]INFOlogback.LogbackDemo-======info
14:09:01.531[main]WARNlogback.LogbackDemo-======warn
14:09:01.531[main]WARNlogback.LogbackDemo-======warn
14:09:01.531[main]ERRORlogback.LogbackDemo-======error
14:09:01.531[main]ERRORlogback.LogbackDemo-======error
一:根节点包含的属性:
scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。
scanPeriod:
设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。
debug:
当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。
例如:
二:根节点的子节点:
2.1设置上下文名称:<contextName>
每个logger都关联到logger上下文,默认上下文名称为default。但可以使用
<contextName>设置成其他名字,用于区分不同应用程序的记录。一旦设置,不能修改。
2.2设置变量:<property>
用来定义变量值的标签,<property>有两个属性name和value;
name:变量的名称
value:的值时变量定义的值。
通过
<property>定义的值会被插入到logger上下文中。定义变量后,可以使“${}”来使用变量。
例如使用
<property>定义上下文名称,然后在
<contentName>设置logger上下文时使用。
2.3获取时间戳字符串:<timestamp>
两个属性:key:标识此
<timestamp>的名字;
datePattern:设置将当前时间(解析配置文件的时间)转换为字符串的模式,遵循java.txt.SimpleDateFormat的格式。
例如将解析配置文件的时间作为上下文名称:
2.4设置loger:
<loger>
用来设置某一个包或者具体的某一个类的日志打印级别、以及指定
<appender>。
<loger>仅有一个
name属性,一个可选的
level和一个可选的
addtivity属性。
name:
用来指定受此loger约束的某一个包或者具体的某一个类。
level:
用来设置打印级别,大小写无关:
TRACE,
DEBUG,INFO
,WARN
,ERROR
,ALL
和OFF
,还有一个特俗值INHERITED
或者同义词NULL`,代表强制执行上级的级别。
如果未设置此属性,那么当前loger将会继承上级的级别。
addtivity:
是否向上级loger传递打印信息。默认是true。
<root>
也是元素,但是它是根loger。只有一个level属性,应为已经被命名为"root”.level:用来设置打印级别,大小写无关:
TRACE,
DEBUG,
INFO,
WARN,
ERROR,
ALL和
OFF,不能设置为
INHERITED或者同义词
NULL。
默认是DEBUG。
<loger>和
<root>可以包含零个或多个
<appender-ref>元素,标识这个
appender将会添加到这个
loger。
例如:
LogbackDemo.java类
三、logback.xml配置文件
第1种:只配置root
其中appender的配置表示打印到控制台(稍后详细讲解appender);
<rootlevel="INFO">将root的打印级别设置为“INFO”,指定了名字为“STDOUT”的appender。
当执行
logback.LogbackDemo类的
main方法时,root将级别为“INFO”及大于“INFO”的日志信息交给已经配置好的名为“STDOUT”的appender处理,“STDOUT”appender将信息打印到控制台;
打印结果如下:
第2种:带有loger的配置,不指定级别,不指定appender:
<configuration> <appendername="STDOUT"class="ch.qos.logback.core.ConsoleAppender"> <!--encoder默认配置为PatternLayoutEncoder--> <encoder> <pattern>%d{HH:mm:ss.SSS}[%thread]%-5level%logger{36}-%msg%n</pattern> </encoder> </appender> <!--logback为java中的包--> <loggername="logback"/> <rootlevel="DEBUG"> <appender-refref="STDOUT"/> </root> </configuration>
其中appender的配置表示打印到控制台(稍后详细讲解appender);
<loggername="logback"/>将控制logback包下的所有类的日志的打印,但是并没用设置打印级别,所以继承他的上级
<root>的日志级别“DEBUG”;
没有设置addtivity,默认为true,将此loger的打印信息向上级传递;
没有设置appender,此loger本身不打印任何信息。
<rootlevel="DEBUG">将root的打印级别设置为“DEBUG”,指定了名字为“STDOUT”的appender。
当执行
logback.LogbackDemo类的
main方法时,因为LogbackDemo在包logback中,所以首先执行
<loggername="logback"/>,将级别为“DEBUG”及大于“DEBUG”的日志信息传递给root,本身并不打印;
root接到下级传递的信息,交给已经配置好的名为“STDOUT”的appender处理,“STDOUT”appender将信息打印到控制台;
打印结果如下:
第3种:带有多个loger的配置,指定级别,指定appender:
其中appender的配置表示打印到控制台(稍后详细讲解appender);
<loggername="logback"/>将控制logback包下的所有类的日志的打印,但是并没用设置打印级别,所以继承他的上级
<root>的日志级别“DEBUG”;
没有设置addtivity,默认为true,将此loger的打印信息向上级传递;
没有设置appender,此loger本身不打印任何信息。
<loggername="logback.LogbackDemo"level="INFO"additivity="false">控制
logback.LogbackDemo类的日志打印,打印级别为“INFO”;
additivity属性为false,表示此loger的打印信息不再向上级传递,
指定了名字为“STDOUT”的appender。
<rootlevel="DEBUG">将root的打印级别设置为“ERROR”,指定了名字为“STDOUT”的appender。
当执行
logback.LogbackDemo类的main方法时,先执行
<loggername="logback.LogbackDemo"level="INFO"additivity="false">,将级别为“INFO”及大于“INFO”的日志信息交给此loger指定的名为“STDOUT”的appender处理,在控制台中打出日志,不再向次loger的上级
<loggername="logback"/>传递打印信息;
<loggername="logback"/>未接到任何打印信息,当然也不会给它的上级root传递任何打印信息;
打印结果如下:
相关文章推荐
- linux下SSH远程连接服务慢解决方案
- CIFilter
- android混淆代码-proguard
- float类型在内存中的表示
- phalcon框架命名空间
- DTcms 导航选中样式以及简化方法
- 交换两个数的值(C语言)的两种方法
- (小知识点)将EditText的光标定位到字符的最后面
- Java编程性能优化一些事儿(经常看看,很有启发)
- SQL Server数据迁移至MySQL
- 内存泄漏弄个明白
- sql(SqlServer)编程基本语法
- Number of 1 Bits
- CSS-background-position百分比
- win 2012 安装Net35
- Docker镜像和镜像构建
- oracle job interval·相关事例
- setvisibility(view.gone)失效问题
- ibatis如何支持clob 和blob
- 12月初.wang域名总量15强:易名西数前二 地位稳定