logback的配置文件(l)常用配置详解
 
一:根节点<configuration>
<configuration>包含的属性: 
scan:
当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true
scanPeriod:
设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scantrue时,此属性生效。默认的时间间隔为1分钟。
debug:
当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认
值为false
例如: 
Xml代码 
<configuration scan="true" scanPeriod="60 seconds" debug="false"> 
      <!-- 其他配置省略--> 
</configuration> 
 二:根节点<configuration>的子节点
2.1设置上下文名称:<contextName>
每个logger都关联到logger上下文,默认上下文名称为default”。但可以使用<contextName>设置成其他名字,用于区分不同应用程序的记录。一旦设置,不能修改。 
Xml代码 
<configuration scan="true" scanPeriod="60 seconds" debug="false"> 
      <contextName>myAppName</contextName> 
      <!-- 其他配置省略--> 
</configuration>   
2.2设置变量: <property>
用来定义变量值的标签,<property> 有两个属性,namevalue;其中name的值是变量的名称,value的值时变量定义的值。通过<property>定义的值会被插入到logger上下文中。定义变量后,可以使${}”来使用变量。
例如使用<property>定义上下文名称,然后在<contentName>设置logger上下文时使用。
Xml代码 
<configuration scan="true" scanPeriod="60 seconds" debug="false"> 
      <property name="APP_Name" value="myAppName" />   
      <contextName>${APP_Name}</contextName> 
      <!-- 其他配置省略--> 
</configuration>   
2.3获取时间戳字符串:<timestamp>
两个属性 key:标识此<timestamp> 的名字;datePattern:设置将当前时间(解析配置文件的时间)转换为字符串的模式,遵循SimpleDateFormat的格式。
        例如将解析配置文件的时间作为上下文名称:
Xml代码 
<configuration scan="true" scanPeriod="60 seconds" debug="false"> 
      <timestamp key="bySecond" datePattern="yyyyMMdd'T'HHmmss"/>   
      <contextName>${bySecond}</contextName> 
      <!-- 其他配置省略--> 
</configuration>   
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
<loger>可以包含零个或多个<appender-ref>元素,标识这个appender将会添加到这个logerpattern属性。 
<root>
也是<loger>元素,但是它是根loger。只有一个level属性,应为已经被命名为"root".
level:
用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL OFF,不能设置为INHERITED或者同义词NULL
默认是DEBUG
<root>可以包含零个或多个<appender-ref>元素,标识这个appender将会添加到这个loger
 
例如:
LogbackDemo.java
Java代码 
package logback; 
 
import org.slf4j.Logger; 
import org.slf4j.LoggerFactory; 
 
public class LogbackDemo { 
    private static Logger log =&Logger(LogbackDemo.class); 
    public static void main(String[] args) { 
        ace("======trace"); 
        log.debug("======debug"); 
        log.info("======info"); 
        log.warn("======warn"); 
        ("======error"); 
    } 
 l配置文件
1种:只配置root
Xml代码 
<configuration>       
  <appender name="STDOUT" class="ch.ConsoleAppender">   
    <!-- encoder 默认配置为PatternLayoutEncoder -->   
    <encoder>   
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>   
    </encoder>   
  </appender>   
   
  <root level="INFO">             
    <appender-ref ref="STDOUT" />   
  </root>     
     
 </configuration> 
其中appender的配置表示打印到控制台(稍后详细讲解appender )
<root level="INFO">root的打印级别设置为INFO”,指定了名字为STDOUT”的appender
 
当执行logback.LogbackDemo类的main方法时,root将级别为INFO”及大于INFO”的日志
信息交给已经配置好的名为STDOUT”的appender处理,STDOUTappender将信息打印到控制台;
打印结果如下:
13:30:38.484 [main] INFO  logback.LogbackDemo - ======info 
13:30:38.500 [main] WARN  logback.LogbackDemo - ======warn 
13:30:38.500 [main] ERROR logback.LogbackDemo - ======error   
2种:带有loger的配置,不指定级别,不指定appender
Xml代码 
<configuration>   
   
  <appender name="STDOUT" class="ch.ConsoleAppender">   
    <!-- encoder 默认配置为PatternLayoutEncoder -->   
    <encoder>   
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>   
    </encoder>   
  </appender>   
   
  <!-- logbackjava中的包 -->   
  <logger name="logback"/>   
   
  <root level="DEBUG">             
    <appender-ref ref="STDOUT" />   
  </root>     
     
 </configuration> 
其中appender的配置表示打印到控制台(稍后详细讲解appender )
<logger name="logback" />将控制logback包下的所有类的日志的打印,但是并没用设置打印级别,所以继承他的上级<root>的日志级别DEBUG”;
没有设置addtivity,默认为true,将此loger的打印信息向上级传递;
没有设置appender,此loger本身不打印任何信息。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。