使用logback進行日誌的打印

resources下面編輯logback.xml:java

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
   <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
      <encoder charset="UTF-8">
         <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %5p %m%n</pattern>
      </encoder>
   </appender>

   <!-- 出錯日誌 appender  -->
   <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
      <file>./logs/LinkManagerAPP_logs/error/LinkManagerAPP_error_console.log</file>
      <append>true</append>
      <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
         <!-- 按天回滾 daily -->
         <!-- log.dir 在maven profile裏配置 -->
         <fileNamePattern>./logs/LinkManagerAPP_logs/error/LinkManagerAPP_error_console-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
         <!-- 日誌最大的歷史 2天 -->
         <maxHistory>2</maxHistory>
         <timeBasedFileNamingAndTriggeringPolicy
               class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <maxFileSize>10485760</maxFileSize>
         </timeBasedFileNamingAndTriggeringPolicy>
      </rollingPolicy>
      <encoder>
         <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
         <charset class="java.nio.charset.Charset">UTF-8</charset>
      </encoder>
      <filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 只打印錯誤日誌 -->
         <level>ERROR</level>
         <onMatch>ACCEPT</onMatch>
         <onMismatch>DENY</onMismatch>
      </filter>
      <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
         <level>ERROR</level>
      </filter>
   </appender>

   <!-- info日誌 appender  -->
   <appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
      <file>./logs/LinkManagerAPP_logs/info/LinkManagerAPP_info_console.log</file>
      <append>true</append>
      <!-- 按天回滾 daily -->
      <!-- log.dir 在maven profile裏配置 -->
      <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
         <!-- 按天回滾 daily -->
         <fileNamePattern>./logs/LinkManagerAPP_logs/info/LinkManagerAPP_info_console-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
         <!-- 日誌最大的歷史 2 -->
         <maxHistory>2</maxHistory>
         <timeBasedFileNamingAndTriggeringPolicy
               class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <maxFileSize>10485760</maxFileSize>
         </timeBasedFileNamingAndTriggeringPolicy>
      </rollingPolicy>
      <encoder>
         <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
         <charset class="java.nio.charset.Charset">UTF-8</charset>
      </encoder>
      <filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 只打印錯誤日誌 -->
         <level>INFO</level>
         <onMatch>ACCEPT</onMatch>
         <onMismatch>DENY</onMismatch>
      </filter>
      <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
         <level>INFO</level>
      </filter>

   </appender>

   <!--<appender name="FILE"-->
      <!--class="ch.qos.logback.core.rolling.RollingFileAppender">-->
      <!--<file>./logs/LinkManagerAPP_logs/LinkManagerAPP_console.log</file>-->
      <!--<append>true</append>-->
      <!--<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">-->
         <!--<fileNamePattern>./logs/LinkManagerAPP_logs/LinkManagerAPP_console-%d{yyyy-MM-dd}.%i.log-->
         <!--</fileNamePattern>-->
         <!--<timeBasedFileNamingAndTriggeringPolicy-->
            <!--class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">-->
            <!--<maxFileSize>10485760</maxFileSize>-->
         <!--</timeBasedFileNamingAndTriggeringPolicy>-->
         <!--<MaxHistory>5</MaxHistory>-->
      <!--</rollingPolicy>-->
      <!--<encoder>-->
         <!--<pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %5p %m%n</pattern>-->
         <!--<charset class="java.nio.charset.Charset">UTF-8</charset>-->
      <!--</encoder>-->
   <!--</appender>-->


   <!--<logger name="infoAppender" level="INFO" addtivity="false">-->
      <!--<appender-ref ref="INFO"/>-->
   <!--</logger>-->
   <!--<logger name="errorAppender" level="ERROR" addtivity="false">-->
      <!--<appender-ref ref="ERROR"/>-->
   <!--</logger>-->


   <!--<root level="DEBUG">-->
      <!--<appender-ref ref="STDOUT" />-->
      <!--<appender-ref ref="errorAppender" />-->
      <!--<appender-ref ref="infoAppender" />-->
   <!--</root>-->

   <root  level="DEBUG">
   <appender-ref ref="STDOUT" />
   <appender-ref ref="INFO" />
   <appender-ref ref="ERROR" />
</root>

</configuration>

代碼中使用樣例:api

public static final Logger LOGGER = LoggerFactory.getLogger(SequenceProducer.class);

 

引入的jar包:app

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-core</artifactId>
    <version>1.2.3</version>
</dependency>
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.2.3</version>
    <exclusions>
        <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </exclusion>
    </exclusions>
</dependency>

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.25</version>
</dependency>

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>jcl-over-slf4j</artifactId>
    <version>1.7.25</version>
</dependency>
相關文章
相關標籤/搜索