spring-boot中logback日誌框架的使用。

簡單介紹下logback:logback是slf4j的實現,兩者是同一個作者也是目前最流行的日誌框架之一。

在springboot下使用無需額外引用jar包。

如果你只是簡單使用日誌,可以在application.properties或者bootstrap.yml直接進行配置:
logging.level.root=info
logging.level.com.phfund.aplus.ahds.mapper=debug
logging.path=logs/
logging.file=ahds.log

以上只是個簡單例子,大家自己可以去了解下。一般項目的日誌比上面要複雜。需要根據時間,日誌大小,日誌級別,指定包等進行滾動配置。

所以需要引入xml配置文件:logback-spring.xml,用-spring結尾則可以和yml或者properties配合使用。

在配置文件中加入下面配置:

logging.config=classpath:logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- 此xml在spring-boot-1.5.3.RELEASE.jar裏 -->
    <include resource="org/springframework/boot/logging/logback/defaults.xml" />
    <include resource="org/springframework/boot/logging/logback/console-appender.xml" />
    <!-- 開啓後可以通過jmx動態控制日誌級別(springboot Admin的功能) -->
    <!--<jmxConfigurator/>-->
    <!-- 控制檯打印配置 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
        	<!-- 分別輸出:時間,日誌級別,線程名,打印位置,文件名,行號,內容 -->
            <pattern>%date [%level] [%thread] %logger{60} [%file : %line] %msg%n</pattern>
        </encoder>
    </appender>
    <!-- 日誌文件配置 -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 可以從項目的配置文件獲取路徑和文件名 -->
        <File>${LOG_PATH}${LOG_FILE}</File>
        <encoder>
            <pattern>%date [%level] [%thread] %logger{60} [%file : %line] %msg%n</pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 添加.gz 歷史日誌會啓用壓縮 大大縮小日誌文件所佔空間 -->
            <fileNamePattern>${LOG_PATH}daily/${LOG_FILE}.%d{yyyy-MM-dd}-%i.gz</fileNamePattern>
            <maxHistory>30</maxHistory><!--  保留30天日誌 -->
            <timeBasedFileNamingAndTriggeringPolicy
                   class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                   <!-- 最大20MB 超過最大值,會重新建一個文件-->
                   <maxFileSize>20MB</maxFileSize>
              </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
    </appender>
<!-- 指定包的日誌級別-->
<!--<logger name="org.springframework" level="error"/>
    <logger name="jdbc.connection" level="OFF"/>
    <logger name="org.apache" level="error"/>
    <logger name="com.alibaba" level="error"/>
    <logger name="org.apache.kafka.clients.producer.ProducerConfig" level="warn"/> -->
    
    <!-- <logger name="com.apache.ibatis" level="TRACE"/>
    <logger name="java.sql.Connection" level="DEBUG"/>
    <logger name="java.sql.Statement" level="DEBUG"/>
    <logger name="java.sql.PreparedStatement" level="DEBUG"/> -->
    <root level="INFO">
        <appender-ref ref="STDOUT"/>
        <appender-ref ref="FILE"/>
    </root>
    <logger name="com.phfund.aplus.ahds.mapper" level="DEBUG"></logger>
</configuration>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章