log4j2.xml基本配置

slf4j是对日志框架实现制定的一个日志规范、标准、接口,不能独立使用,需要与具体的日志框架实现配合使用。log4j、logback、log4j2分别是三种日志框架实现,其中log4j2是log4j 1.x和logback的改进版。

下面介绍一下xml格式的log4j2配置文件的基本配置。

1. xml节点

Configuration

根节点。

  • status,log4j2日志框架实现自身的日志级别,OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL
  • monitorInterval,重新读取配置文件的间隔时间,单位为秒

Properties

属性(可选),用来定义常量,之后在其他配置项中通过${变量名}引用。

Appenders

输出源,用于定义日志输出的地方,有控制台ConsoleAppender、滚动文件FileAppender、RollingRandomAccessFile等。

RollingRandomAccessFile

按照一定的策略滚动文件。

  • name,指定Appender的名字
  • fileName,当前日志文件的路径和名字
  • filePattern,当发生滚动时,文件的转移和重命名规则

ThresholdFilter

决定日志事件能否被输出。

  • ACCEPT(接受),DENY(拒绝),NEUTRAL(中立)
  • onMatch(该级别及以上),onMismatch(该级别以下)

PatternLayout

日志输出的格式,官方文档:http://logging.apache.org/log...

  • %d,时间,默认格式为2012-11-02 14:34:02,123
  • %level,日志级别,比如FATAL、ERROR、WARN、INFO、DEBUG、RACE
  • %thread,线程名字
  • %c{1.},logger名字,比如LoggerName=org.apache.commons.Foo,Result=o.a.c.Foo
  • %msg,日志信息
  • %l,位置信息,等同于%C.%M(%F:%L)
  • %C、%class,完整类名
  • %M、%method,方法名
  • %F、%file,文件名
  • %L、%line,行号
  • %n,换行

Policies

日志文件的滚动策略。

  • TimeBasedTriggeringPolicy,和filePattern结合使用,日期格式决定时间单位,interval决定单位时间间隔;modulate,产生文件是否以0点偏移时间
  • SizeBasedTriggeringPolicy,日志文件大小滚动策略

DefaultRolloverStrategy

默认滚动策略

  • max,日志文件保存的最多个数

2. 一个例子





    
    
        logs
        
        [%d][%level][%thread][%X{_TRACE_ID}][%c{1.}]- %msg -%n
        [%d][%level][%thread][%X{_TRACE_ID}][%c{1.}]- %msg -[%l]%n
        UTF-8
        1GB
        30
    

    
    
        
        
            
                ${ALL_PATTERN}
            
        
        
        
        
        
        
            
            
                ${ALL_PATTERN}
            
            
            
            
            
                
                
            
            
            
        

        
            
            
            
                ${ERROR_PATTERN}
            
            
                
                
            
            
        
    

    
        
        
        
        
        
            
            
            
        
        
        
        
            
            
            
        
    

你可能感兴趣的:(java日志log4j2)