zoukankan      html  css  js  c++  java
  • logback配置(与log4j对比)

    使用logback理由:

    1、性能提升

    2、自动重新加载配置文件

    3、自动去除旧的日志文件 (TimeBasedRollingPolicy)

    配置:

    1、pom.xml添加依赖(logback-core-1.1.2.jar)

    1 <dependency>
    2     <groupId>ch.qos.logback</groupId>
    3     <artifactId>logback-classic</artifactId>
    4     <version>1.0.6</version>
    5 </dependency>

    百度网盘:https://pan.baidu.com/s/19VGCaI9fTm5k0PR5kUWa5Q

    密码:eld7

    2、配置文件

    说明:

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <configuration
     3     xmlns="http://ch.qos.logback/xml/ns/logback"
     4     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     5     xsi:schemaLocation="http://ch.qos.logback/xml/ns/logback https://raw.githubusercontent.com/enricopulatzo/logback-XSD/master/src/main/xsd/logback.xsd">
     6     <property name="LOG_HOME" value="tp/log"/>
     7     <!-- 输出到控制台 -->
     8     <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender" >
     9         <!-- 输出的格式 -->
    10         <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
    11             <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:  %msg%n</pattern>
    12         </encoder>
    13     </appender>
    14 
    15     <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    16         <!-- 配置滚动的策略 -->
    17         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    18             <!-- 日志名称的格式 -->
    19             <fileNamePattern>${LOG_HOME}/logback.log.%d{yyyy-MM-dd}</fileNamePattern>
    20             <!-- 保存的最长时间:天数 -->
    21             <MaxHistory>1</MaxHistory>
    22         </rollingPolicy>
    23         <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
    24             <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:  %msg%n</pattern>
    25         </encoder>
    26     </appender>
    27 
    28     <!--
    29     注意:
    30     level属性也可以直接写在logger上,如:
    31     <logger name="ws.log.logback.LogbackTest" additivity="false" level="INFO">
    32         <appender-ref ref="STDOUT" />
    33     </logger>
    34     -->
    35     <logger name="ws.log.logback.LogbackTest" additivity="false">
    36         <level value="INFO" />
    37         <appender-ref ref="STDOUT" />
    38     </logger>
    39 
    40     <!-- 相当于logger元素,只是name值已经确定为root了 -->
    41     <root level="warn">
    42         <appender-ref ref="STDOUT" />
    43     </root>
    44 </configuration>

    实际配置:

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <configuration scan="true" scanPeriod="30 seconds">
     3     <!-- <property name="position.log.dir" value="../logs" /> -->
     4     <property name="position.log.dir" value="D:/logs/0817" />
     5     <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
     6         <encoder>
     7             <pattern>[%d{yyyy-MM-dd HH:mm:ss}][%-5level][%logger:%L] %m%n
     8             </pattern>
     9         </encoder>
    10     </appender> <!---->
    11     <!-- weather项目日志 -->
    12     <appender name="position_appender"
    13         class="ch.qos.logback.core.rolling.RollingFileAppender">
    14         <File>${position.log.dir}/position.log</File>
    15         <encoder>
    16             <pattern>[%d{yyyy-MM-dd HH:mm:ss}][%-5level][%logger:%L][%X{cguid}]
    17                 %m%n</pattern>
    18         </encoder>
    19         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    20             <fileNamePattern>${position.log.dir}/position.log.%d{yyyy-MM-dd}
    21             </fileNamePattern>
    22         </rollingPolicy>
    23     </appender>
    24     <!-- 性能监控 -->
    25     <appender name="Performance_Monitoring"
    26         class="ch.qos.logback.core.rolling.RollingFileAppender">
    27         <File>${position.log.dir}/monitoring.log</File>
    28         <encoder>
    29             <pattern>%m%n</pattern>
    30         </encoder>
    31         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    32             <fileNamePattern>${position.log.dir}/monitoring.log.%d{yyyy-MM-dd}
    33             </fileNamePattern>
    34         </rollingPolicy>
    35     </appender>
    36 
    37     <logger name="richinfo.frame" level="DEBUG" additivity="false">
    38         <appender-ref ref="CONSOLE" />
    39     </logger>
    40     <logger name="com.richinfo" level="DEBUG" additivity="false">
    41         <appender-ref ref="CONSOLE" />
    42     </logger>
    43     <logger name="Performance_monitoring" level="DEBUG" additivity="false">
    44         <appender-ref ref="Performance_Monitoring" />
    45     </logger>
    46  
    47 
    48     <!-- <root level="debug">
    49         <appender-ref ref="CONSOLE" />
    50     </root> -->
    51 </configuration>

    3、代码实现

     1 public class LogbackTest {
     2 
     3     private static final Logger LOGGER = LoggerFactory.getLogger(LogbackTest.class);
     4 
     5     public static void main(String[] args) {
     6         LOGGER.trace("logback的--trace日志--输出了");
     7         LOGGER.debug("logback的--debug日志--输出了");
     8         LOGGER.info("logback的--info日志--输出了");
     9         LOGGER.warn("logback的--warn日志--输出了");
    10         LOGGER.error("logback的--error日志--输出了");
    11     }
    12 
    13 }

    自动重新加载配置文件

  • 相关阅读:
    LeetCode 104
    LeetCode 100
    LeetCode 27
    LeetCode 7
    LeetCode 8
    蘑菇街2017春招笔试
    codeforces 5D
    codeforces 5C
    codeforces 875B
    codeforces 876B
  • 原文地址:https://www.cnblogs.com/zhuziyu/p/8919414.html
Copyright © 2011-2022 走看看