springboot2.0 : log4j 的基礎使用

springboot2.x 配置log4j

傳統方式打印日誌比較複雜, 每次打印須要定義全局變量java

private static final Logger logger = LoggerFactory.getLogger(this.getClass())  spring

springboot2.x ,只須要加個註解~~~~api

 

項目結構

影響文件: pom.xml , application.yml , logback.xml springboot

 

pom.xml 引入jar包

<dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.10</version>
        </dependency>

 

application.yml 配置

logging:
  level:
    root:  ERROR
    org.springframework:  ERROR
    org.mybatis:  ERROR
#本身的工程包名錄 : 日誌級別
    org.xxx.xxx.wx:  DEBUG
    org.xxx.xxx.db:  DEBUG
    org.xx.xx:  INFO
  file: /var/logs/litemall-wx-api/xxx.log

logback.xml 

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
    <!--定義日誌文件的存儲地址 勿在 LogBack 的配置中使用相對路徑-->
    <property name="LOG_HOME" value="/var/logs/xxxx/" />
    <!-- 控制檯輸出 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化輸出:%d表示日期,%thread表示線程名,%-5level:級別從左顯示5個字符寬度%msg:日誌消息,%n是換行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- 按照天天生成日誌文件 -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日誌文件輸出的文件名-->
            <FileNamePattern>${LOG_HOME}/info.log.%d{yyyy-MM-dd}.log</FileNamePattern>
            <!--日誌文件保留天數-->
            <MaxHistory>30</MaxHistory>
        </rollingPolicy>

        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化輸出:%d表示日期,%thread表示線程名,%-5level:級別從左顯示5個字符寬度%msg:日誌消息,%n是換行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
        </encoder>
        <!--日誌文件最大的大小-->
        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <MaxFileSize>100MB</MaxFileSize>
        </triggeringPolicy>
    </appender>




    <!--只保存error日誌-->
    <appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化輸出:%d表示日期,%thread表示線程名,%-5level:級別從左顯示5個字符寬度%msg:日誌消息,%n是換行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
        </encoder>
        <!--滾動輸出策略-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日誌文件輸出的文件名-->
            <FileNamePattern>${LOG_HOME}/error.log.%d{yyyy-MM-dd}.log</FileNamePattern>
            <!--日誌文件保留天數-->
            <MaxHistory>30</MaxHistory>
        </rollingPolicy>
        <!--日誌文件最大的大小-->
        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <MaxFileSize>100MB</MaxFileSize>
        </triggeringPolicy>
    </appender>

    <root level="INFO">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="FILE" />
        <appender-ref ref="fileErrorLog" />
    </root>
<!--    &lt;!&ndash; 開發環境日誌級別爲DEBUG/而且開發環境不寫日誌文件 &ndash;&gt;-->
<!--    <springProfile name="dev">-->
<!--        &lt;!&ndash; 日誌輸出級別 &ndash;&gt;-->
<!--        <root level="DEBUG">-->
<!--            <appender-ref ref="STDOUT" />-->
<!--            <appender-ref ref="FILE" />-->
<!--            <appender-ref ref="fileErrorLog" />-->
<!--        </root>-->

<!--    </springProfile>-->

<!--    &lt;!&ndash; 測試環境日誌級別爲INFO/而且記錄日誌文件 &ndash;&gt;-->
<!--    <springProfile name="test">-->
<!--        &lt;!&ndash; 日誌輸出級別 &ndash;&gt;-->
<!--        <root level="INFO">-->
<!--            <appender-ref ref="STDOUT" />-->
<!--            <appender-ref ref="FILE" />-->
<!--            <appender-ref ref="fileErrorLog" />-->
<!--        </root>-->
<!--    </springProfile>-->

</configuration>

 

生成規則: mybatis

  • 天天生成一個文件
  • 全部日誌自動打印打info.log (包含wran,error)
  • error.log 同步記錄, 利於排查

java引用 

import lombok.extern.slf4j.Slf4j;

相關文章
相關標籤/搜索