Logback.xml



<configuration scan="true" scanPeriod="10 seconds">

    <contextName>xxxxcontextName>

    
    <property name="log.path" value="logs"/>

    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%npattern>
            
            <charset>UTF-8charset>
        encoder>
    appender>

    
    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        
        <file>${log.path}/austin-info.logfile>
        
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%npattern>
            <charset>UTF-8charset>
        encoder>
        
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            
            <fileNamePattern>${log.path}/logs/austin-info-%d{yyyy-MM-dd}.%i.logfileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>1000MBmaxFileSize>
            timeBasedFileNamingAndTriggeringPolicy>
            
            <maxHistory>15maxHistory>
        rollingPolicy>
        
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>infolevel>
            <onMatch>ACCEPTonMatch>
            <onMismatch>DENYonMismatch>
        filter>
    appender>

    
    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        
        <file>${log.path}/austin-error.logfile>
        
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%npattern>
            <charset>UTF-8charset> 
        encoder>
        
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${log.path}/austin-error-%d{yyyy-MM-dd}.%i.logfileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>1000MBmaxFileSize>
            timeBasedFileNamingAndTriggeringPolicy>
            
            <maxHistory>15maxHistory>
        rollingPolicy>
        
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERRORlevel>
            <onMatch>ACCEPTonMatch>
            <onMismatch>DENYonMismatch>
        filter>
    appender>

    <root level="info">
        
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="INFO_FILE"/>
        <appender-ref ref="ERROR_FILE"/>
    root>

configuration>

1、根节点configuration,有以下属性

configuration scan=“true” scanPeriod=“10 seconds”

  • scan,当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。
  • scanPeriod,设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。
  • debug,当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。

2、contextName ,设置日志上下文名称,可以通过%contextName来打印日志上下文名称

3、property可以用来设置变量,可以通过${name}来访问,有以下的属性

  • name,用于${name}访问的key
  • value,用于${name}访问的value
  • file ,用于指定配置文件的路径,他的作用在于,如果你有多个配置信息的话,可以直接写在配置文件中,然后通过file引入

4.appender 格式化日志输出节点,有俩个属性name和class,class用来指定哪种输出策略,常用就是控制台输出策略和文件输出策略。appender有以下子节点:

  • filter,日志输出拦截器,可以自定义拦截器也可以用系统一些定义好的拦截器
  • encoder和pattern节点组合用于具体输出的日志格式
  • file节点用来指明日志文件的输出位置,可以是绝对路径也可以是相对路径
  • rollingPolicy日志回滚策略,TimeBasedRollingPolicy策略,有以下子节点
    • fileNamePattern,必要节点,可以用来设置指定时间的日志归档,
    • maxHistory ,可选节点,控制保留的归档文件的最大数量,超出数量就删除旧文件,,例如设置为30的话,则30天之后,旧的日志就会被删除
    • totalSizeCap,可选节点,用来指定日志文件的上限大小,例如设置为3GB的话,那么到了这个值,就会删除旧的日志
  • 除了用TimeBasedRollingPolicy策略,我们还可以用SizeAndTimeBasedRollingPolicy,配置子节点的maxFileSize来指定单个日志文件的大小

5、root节点,必选节点,用来指定最基础的日志输出级别,他有俩个自己点可以用来应用appender,格式化日志输出

6、logger节点,可选节点,用来具体指明包的日志输出级别,它将会覆盖root的输出级别

  • logger中有一个additivity属性,作用在于 children-logger是否使用 rootLogger配置的appender进行输出。
    • false:表示只用当前logger的appender-ref。
    • true:表示当前logger的appender-ref和rootLogger的appender-ref都有效。

7、Level有效级别TRACE、DEBUG、INFO、WARN和ERROR,定义于ch.qos.logback.classic.Level类。

参考:https://blog.csdn.net/forwujinwei/article/details/79977479

你可能感兴趣的:(日志,logback,xml,java)