zoukankan      html  css  js  c++  java
  • logback.xml模板详解

      1 <?xml version="1.0" encoding="UTF-8"?>
      2 
      3 <!-- 配置文件每隔1分钟,就检查更新 -->
      4 <configuration scan="true" scanPeriod="60 seconds" debug="false" >
      5     <!-- 定义参数常量,便于后面直接用${name}来获取value值 -->
      6     <property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%-5level] %logger{50} - %msg%n"/>
      7     <property name="log.filePath" value="${catalina.base}/logs/webapps"/>
      8     <property name="log.maxHistory" value="30"/>
      9 
     10     <!-- ch.qos.logback.core.ConsoleAppender 控制台输出 -->
     11     <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
     12         <!-- 过去使用layout,现在都推荐使用encoder
     13              作用一:将日志信息转换(格式化)为字符串
     14              作用二:然后写入到文件中-->
     15         <encoder>
     16             <pattern>${log.pattern}</pattern>
     17         </encoder>
     18     </appender>
     19 
     20     <!-- ch.qos.logback.core.rolling.RollingFileAppender 文件日志输出到文件 -->
     21     <!-- 1.打印debug级别日志的设置 -->
     22     <appender name="debugAppender"
     23               class="ch.qos.logback.core.rolling.RollingFileAppender">
     24         <!-- 例如当天,也就是今天是2019-2-19,那么在这天生成的日志文件路径为${log.filePath}/debug.log
     25              接着到了明天,也就是2019-2-20,这天生成的日志文件路径为${log.filePath}/debug.log,
     26              但昨天2019-2-19,生成的日志文件路径就变为${log.filePath}/debug/debug-2019-2-19.log.gz(压缩文件) -->
     27 
     28         <!-- 当天生成的日志文件的路径 -->
     29         <file>${log.filePath}/debug.log</file>
     30         <!-- 设置基于时间(每天)的滚动策略,也就是将日志内容按照日期来写入到相应的文件中-->
     31         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
     32             <!-- 当天之前的每天生成的日志文件的路径 -->
     33             <fileNamePattern>${log.filePath}/debug/debug-%d{yyyy-MM-dd}.log.gz
     34             </fileNamePattern>
     35             <!-- 最大历史保存文件的数量,只保存最近30天的日志文件,超出的会被删除-->
     36             <maxHistory>${log.maxHistory}</maxHistory>
     37         </rollingPolicy>
     38         <!-- 过去使用layout,现在都推荐使用encoder
     39              作用一:将日志信息转换(格式化)为字符串
     40              作用二:然后写入到文件中-->
     41         <encoder>
     42             <pattern>${log.pattern}</pattern>
     43         </encoder>
     44         <!-- 过滤掉非debug级别的信息 -->
     45         <filter class="ch.qos.logback.classic.filter.LevelFilter">
     46             <level>debug</level>
     47             <onMatch>ACCEPT</onMatch>
     48             <!-- 作用是拒绝写入所有与<level>不匹配的日志信息,
     49             也就是非debug级别的日志信息都不会被写入到日志文件中 -->
     50             <onMismatch>DENY</onMismatch>
     51         </filter>
     52     </appender>
     53 
     54     <!-- 2.打印info级别日志的设置 -->
     55     <appender name="infoAppender"
     56               class="ch.qos.logback.core.rolling.RollingFileAppender">
     57         <!-- 例如当天,也就是今天是2019-2-19,那么在这天生成的日志文件路径为${log.filePath}/info.log
     58              接着到了明天,也就是2019-2-20,这天生成的日志文件路径为${log.filePath}/info.log,
     59              但昨天2019-2-19,生成的日志文件路径就变为${log.filePath}/info/info-2019-2-19.log.gz(压缩文件) -->
     60 
     61         <!-- 当天生成的日志文件的路径 -->
     62         <file>${log.filePath}/info.log</file>
     63         <!-- 设置基于时间(每天)的滚动策略,也就是将日志内容按照日期来写入到相应的文件中-->
     64         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
     65             <!-- 当天之前的每天生成的日志文件的路径 -->
     66             <fileNamePattern>${log.filePath}/info/info-%d{yyyy-MM-dd}.log.gz
     67             </fileNamePattern>
     68             <!-- 最大历史保存文件的数量,只保存最近30天的日志文件,超出的会被删除-->
     69             <maxHistory>${log.maxHistory}</maxHistory>
     70         </rollingPolicy>
     71         <!-- 过去使用layout,现在都推荐使用encoder
     72              作用一:将日志信息转换(格式化)为字符串
     73              作用二:然后写入到文件中-->
     74         <encoder>
     75             <pattern>${log.pattern}</pattern>
     76         </encoder>
     77         <!-- 过滤掉非info级别的信息 -->
     78         <filter class="ch.qos.logback.classic.filter.LevelFilter">
     79             <level>info</level>
     80             <onMatch>ACCEPT</onMatch>
     81             <!-- 作用是拒绝写入所有与<level>不匹配的日志信息,
     82             也就是非info级别的日志信息都不会被写入到日志文件中 -->
     83             <onMismatch>DENY</onMismatch>
     84         </filter>
     85     </appender>
     86 
     87     <!-- 3.打印error级别日志的设置 -->
     88     <appender name="errorAppender"
     89               class="ch.qos.logback.core.rolling.RollingFileAppender">
     90         <!-- 例如当天,也就是今天是2019-2-19,那么在这天生成的日志文件路径为${log.filePath}/error.log
     91              接着到了明天,也就是2019-2-20,这天生成的日志文件路径为${log.filePath}/error.log,
     92              但昨天2019-2-19,生成的日志文件路径就变为${log.filePath}/error/error-2019-2-19.log.gz(压缩文件) -->
     93 
     94         <!-- 当天生成的日志文件的路径 -->
     95         <file>${log.filePath}/error.log</file>
     96         <!-- 设置基于时间(每天)的滚动策略,也就是将日志内容按照日期来写入到相应的文件中-->
     97         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
     98             <!-- 当天之前的每天生成的日志文件的路径 -->
     99             <fileNamePattern>${log.filePath}/error/error-%d{yyyy-MM-dd}.log.gz
    100             </fileNamePattern>
    101             <!-- 最大历史保存文件的数量,只保存最近30天的日志文件,超出的会被删除-->
    102             <maxHistory>${log.maxHistory}</maxHistory>
    103         </rollingPolicy>
    104         <!-- 过去使用layout,现在都推荐使用encoder
    105              作用一:将日志信息转换(格式化)为字符串
    106              作用二:然后写入到文件中-->
    107         <encoder>
    108             <pattern>${log.pattern}</pattern>
    109         </encoder>
    110         <!-- 过滤掉非error级别的信息 -->
    111         <filter class="ch.qos.logback.classic.filter.LevelFilter">
    112             <level>error</level>
    113             <onMatch>ACCEPT</onMatch>
    114             <!-- 作用是拒绝写入所有与<level>不匹配的日志信息,
    115             也就是非error级别的日志信息都不会被写入到日志文件中 -->
    116             <onMismatch>DENY</onMismatch>
    117         </filter>
    118     </appender>
    119 
    120     <!-- 监听com.imooc.o2o包下所有类产生的日志信息
    121         不设置additivity属性,那么默认additivity = true,表示会继承父级(在这里它的父级只有root一个),
    122         也就是会将日志信息也输出在控制台,但级别会覆盖父级的级别,也就是在控制台会输出debug级别及以上的日志信息 -->
    123     <logger name="com.imooc.o2o" level="debug">
    124         <!-- 表示按照debugAppender的设置去打印日志 -->
    125         <appender-ref ref="debugAppender"/>
    126         <!-- 表示按照infoAppender的设置去打印日志 -->
    127         <appender-ref ref="infoAppender"/>
    128         <!-- 表示按照errorAppender的设置去打印日志 -->
    129         <appender-ref ref="errorAppender"/>
    130     </logger>
    131 
    132     <!-- 也是一种<logger>,是所有<logger>的父级 -->
    133     <!-- 不设置additivity属性,或者设置additivity = true的<logger>,会继承root的子标签<appender-ref ref="console" />的设置,
    134         将它自己设置的level属性级别及以上的日志打印到控制台 -->
    135     <root level="info">
    136         <!-- 表示按照console的设置去输出日志到控制台 -->
    137         <appender-ref ref="console" />
    138     </root>
    139 
    140 
    141 
    142 </configuration>

    注意:

    1. ${catalina.base}表示tomcat的工作目录,具体的路径可以通过以下两种方式

       a.Tomcat启动时,控制台最先打印的信息中,在前几行会看到 catalina.base ,它后面的路径就是当前项目的tomcat的工作目录
      b.一般都在此目录中可以找到所有已部署项目的Tomcat的工作目录:
    C:Users(这是电脑的本机账号)
    .IntelliJIdea2018.2(这是Tomcat集成的IDE工具,我使用的是IDEA)
    system omcatUnnamed_o2o
    (项目名)

    2. logback.xml文件的目录位置

    maven项目,请放在classpath下,也就是src/main/resource文件夹下,否则系统解析不到logback.xml文件

    3. 需要的jar包

    1 <!--日志logback,默认scope是compile,也就是从编译时就起作用了-->
    2     <!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic -->
    3     <dependency>
    4       <groupId>ch.qos.logback</groupId>
    5       <artifactId>logback-classic</artifactId>
    6       <version>1.2.3</version>
    7     </dependency>
    
    
    




  • 相关阅读:
    css 面试学习
    关于CSS的图像放大问题的解决,需要借助jQuery等直接用css3设置
    DEBUG使用
    crontab
    od
    dumpe2fs
    mke2fs
    dd
    GDB
    rm
  • 原文地址:https://www.cnblogs.com/zui-ai-java/p/10404670.html
Copyright © 2011-2022 走看看