前言
最近項目中使用springboot+logback日誌,正常啓動以後服務器上面出現,異樣的日誌文件
如圖所示問題:
配置文件如下配置的:
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds">
<property name="logging.file.path" value="${logging.file.path}"/>
<!-- 都說spring boot使用日誌需要引入這個,但是我引入了之後總是打印兩份日誌,所以我去除了,並不影響使用 -->
<!-- <include resource="org/springframework/boot/logging/logback/base.xml"/> -->
<!-- 控制檯設置 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%-4relative [%thread] %-5level %logger{35} - %msg %n</pattern>
</encoder>
</appender>
<!-- INFO -->
<appender name="infoAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 文件路徑 ,注意LOG_PATH是默認值,
它的配置對應application.properties裏的logging.path值-->
<file>${logging.file.path}/info/info.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 文件名稱 -->
<fileNamePattern>${logging.file.path}/info/info-%d{yyyy-MM-dd}.log
</fileNamePattern>
<!-- 文件最大保存歷史數量 -->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder>
<pattern>${logging.pattern.file}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- DEBUG -->
<appender name="debugAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 文件路徑 ,注意LOG_PATH是默認值,
它的配置對應application.properties裏的logging.path值-->
<file>${logging.file.path}/debug/debug.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 文件名稱 -->
<fileNamePattern>${logging.file.path}/debug/debug-%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 文件最大保存歷史數量 -->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder>
<pattern>${logging.pattern.file}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>DEBUG</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- WARN -->
<appender name="warnAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 文件路徑 ,注意LOG_PATH是默認值,
它的配置對應application.properties裏的logging.path值-->
<file>${logging.file.path}/warn/warn.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 文件名稱 -->
<fileNamePattern>${logging.file.path}/warn/warn-%d{yyyy-MM-dd}.log
</fileNamePattern>
<!-- 文件最大保存歷史數量 -->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder>
<pattern>${logging.pattern.file}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>WARN</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- ERROR -->
<appender name="errorAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 文件路徑 ,注意LOG_PATH是默認值,
它的配置對應application.properties裏的logging.path值-->
<file>${logging.file.path}/error/error.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 文件名稱 -->
<fileNamePattern>${logging.file.path}/error/error-%d{yyyy-MM-dd}.log
</fileNamePattern>
<!-- 文件最大保存歷史數量 -->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder>
<pattern>${logging.pattern.file}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<logger name="org.springframework" additivity="false">
<level value="ERROR" />
<appender-ref ref="STDOUT" />
<appender-ref ref="errorAppender" />
</logger>
<!-- 由於啓動的時候,以下兩個包下打印debug級別日誌很多 ,所以調到ERROR-->
<logger name="org.apache.tomcat.util" additivity="false">
<level value="ERROR"/>
<appender-ref ref="STDOUT"/>
<appender-ref ref="errorAppender"/>
</logger>
<!-- 默認spring boot導入hibernate很多的依賴包,啓動的時候,會有hibernate相關的內容,直接去除 -->
<logger name="org.hibernate.validator" additivity="false">
<level value="ERROR"/>
<appender-ref ref="STDOUT"/>
<appender-ref ref="errorAppender"/>
</logger>
<root level="INFO"><!--INFO-->
<appender-ref ref="STDOUT"/>
<appender-ref ref="infoAppender"/>
<appender-ref ref="debugAppender"/>
<appender-ref ref="warnAppender"/>
<appender-ref ref="errorAppender"/>
</root>
</configuration>
定位問題,錯誤點應該在這裏:
然後這樣獲取:
完整的日誌文件
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds">
<springProperty name="LOG_PATH" source="logging.file.path"/>
<!-- 都說spring boot使用日誌需要引入這個,但是我引入了之後總是打印兩份日誌,所以我去除了,並不影響使用 -->
<!-- <include resource="org/springframework/boot/logging/logback/base.xml"/> -->
<!-- 控制檯設置 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%-4relative [%thread] %-5level %logger{35} - %msg %n</pattern>
</encoder>
</appender>
<!-- INFO -->
<appender name="infoAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 文件路徑 ,注意LOG_PATH是默認值,
它的配置對應application.properties裏的logging.path值-->
<file>${LOG_PATH}/info/info.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 文件名稱 -->
<fileNamePattern>${LOG_PATH}/info/info-%d{yyyy-MM-dd}.log
</fileNamePattern>
<!-- 文件最大保存歷史數量 -->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder>
<pattern>[%d{yyyy-MM-dd HH:mm:ss}] -- [%-5p]: [%c] -- %m%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- DEBUG -->
<appender name="debugAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 文件路徑 ,注意LOG_PATH是默認值,
它的配置對應application.properties裏的logging.path值-->
<file>${LOG_PATH}/debug/debug.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 文件名稱 -->
<fileNamePattern>${LOG_PATH}/debug/debug-%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 文件最大保存歷史數量 -->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder>
<pattern>[%d{yyyy-MM-dd HH:mm:ss}] -- [%-5p]: [%c] -- %m%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>DEBUG</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- WARN -->
<appender name="warnAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 文件路徑 ,注意LOG_PATH是默認值,
它的配置對應application.properties裏的logging.path值-->
<file>${LOG_PATH}/warn/warn.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 文件名稱 -->
<fileNamePattern>${LOG_PATH}/warn/warn-%d{yyyy-MM-dd}.log
</fileNamePattern>
<!-- 文件最大保存歷史數量 -->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder>
<pattern>[%d{yyyy-MM-dd HH:mm:ss}] -- [%-5p]: [%c] -- %m%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>WARN</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- ERROR -->
<appender name="errorAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 文件路徑 ,注意LOG_PATH是默認值,
它的配置對應application.properties裏的logging.path值-->
<file>${LOG_PATH}/error/error.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 文件名稱 -->
<fileNamePattern>${LOG_PATH}/error/error-%d{yyyy-MM-dd}.log
</fileNamePattern>
<!-- 文件最大保存歷史數量 -->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder>
<pattern>[%d{yyyy-MM-dd HH:mm:ss}] -- [%-5p]: [%c] -- %m%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<logger name="org.springframework" additivity="false">
<level value="ERROR" />
<appender-ref ref="STDOUT" />
<appender-ref ref="errorAppender" />
</logger>
<!-- 由於啓動的時候,以下兩個包下打印debug級別日誌很多 ,所以調到ERROR-->
<logger name="org.apache.tomcat.util" additivity="false">
<level value="ERROR"/>
<appender-ref ref="STDOUT"/>
<appender-ref ref="errorAppender"/>
</logger>
<!-- 默認spring boot導入hibernate很多的依賴包,啓動的時候,會有hibernate相關的內容,直接去除 -->
<logger name="org.hibernate.validator" additivity="false">
<level value="ERROR"/>
<appender-ref ref="STDOUT"/>
<appender-ref ref="errorAppender"/>
</logger>
<root level="INFO"><!--INFO-->
<appender-ref ref="STDOUT"/>
<appender-ref ref="infoAppender"/>
<appender-ref ref="debugAppender"/>
<appender-ref ref="warnAppender"/>
<appender-ref ref="errorAppender"/>
</root>
</configuration>
- 日誌文件名稱
- 配置文件這麼配置:
配置bootstrap.yml文件.boostrap.yml優先於application.yml加載
logging:
config:
classpath: logback-spring.xml
file:
path: /usr/local/server-test/xxx-log
pattern:
console: "[%d{yyyy-MM-dd HH:mm:ss}] -- [%-5p]: [%c] -- %m%n"
file: "[%d{yyyy-MM-dd HH:mm:ss}] -- [%-5p]: [%c] -- %m%n"