在网上搜了些Logging配置,发现千篇一律。基本上没讲述全的;在这推荐大家直接看spring boot官方文档:Spring Boot docs – Configure Logback for logging
下面给下我的默认配置:
logging.file=demo.log
logging.level.root=info
logging.level.com.test.framework=DEBUG
logging.pattern.file=%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
logging.pattern.console=%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
logging.file.max-size=100M
logging.file.max-history=10
#logging.config=classpath:conf/xml/logback.xml #用于配置外部logback.xml
logback.xml配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="LOG_HOME" value="./logs" />
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<appender name="rollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/demo.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/demo.%d{yyyy-MM-dd}.log</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<appender name="errorRollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/error.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>200mb</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>10</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<appender name="async-rollingFile" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="rollingFile" />
<discardingThreshold>0</discardingThreshold>
<queueSize>512</queueSize>
</appender>
<appender name="dao-rollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>./logs/dao.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>500mb</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>10</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<appender name="async-daoRollingFile" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="dao-rollingFile" />
<includeCallerData>true</includeCallerData>
</appender>
<logger name="java.sql.PreparedStatement" level="DEBUG" />
<logger name="com.apache.ibatis" level="DEBUG" />
<logger name="org.mybatis" level="DEBUG" />
<logger name="com.google.code" level="INFO" />
<logger name="java.sql.Connection" level="DEBUG" />
<logger name="java.sql.Statement" level="DEBUG" />
<logger name="java.sql.PreparedStatement" level="DEBUG" />
<logger name="org.springframework.amqp" level="INFO" />
<logger name="org.springframework" level="INFO" />
<logger name="druid.sql" level="INFO" />
<logger name="org.quartz" level="ERROR" />
<!-- 将某一个包下日志单独打印日志 -->
<logger name="com.test.demo.dao"
level="INFO" additivity="false">
<appender-ref ref="async-daoRollingFile" />
</logger>
<root level="debug">
<appender-ref ref="console" />
<!-- <appender-ref ref="async-rollingFile" />
</root>
</configuration>