logback日志配置
1. application-dev.properties 配置文件添加logback配置
logging.config=classpath:logback-spring.xml
2. 复制 logback-spring.xml 到 /src/main/resources目录
3. 输出SQL :修改RelationDBAccessor的日志级别为DEBUG,默认不输出SQL,生产环境不建议输出SQL
<logger name="com.sie.snest.engine.db.relationdb.RelationDBAccessor" level="DEBUG" additivity="false">
<appender-ref ref="STDOUT" />
<appender-ref ref="SQL_LOG" />
</logger>
logback-spring.xml 配置
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true">
<property name="LOG_BASE" value="logs" />
<!--控制台日志 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} -%msg%n</pattern>
</encoder>
</appender>
<!--引擎日志 -->
<appender name="ENGINE_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} -%msg%n</pattern>
</encoder>
<file>${LOG_BASE}/metalogfile.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_BASE}/metalogfile.%d{yyyyMMdd}.%i.log
</fileNamePattern>
<!-- 每天一个日志文件,当天的日志文件超过10MB时,生成新的日志文件,当天的日志文件数量超过totalSizeCap/maxFileSize,日志文件就会被回滚覆盖。 -->
<maxFileSize>128MB</maxFileSize>
<maxHistory>60</maxHistory>
<totalSizeCap>30GB</totalSizeCap>
</rollingPolicy>
</appender>
<!--SQL日志 -->
<appender name="SQL_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} -%msg%n</pattern>
</encoder>
<file>${LOG_BASE}/sqllogfile.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_BASE}/sqllogfile.%d{yyyyMMdd}.%i.log
</fileNamePattern>
<maxFileSize>128MB</maxFileSize>
<maxHistory>60</maxHistory>
<totalSizeCap>30GB</totalSizeCap>
</rollingPolicy>
</appender>
<!--业务日志 -->
<appender name="BUSS_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} -%msg%n</pattern>
</encoder>
<file>${LOG_BASE}/businesslogfile.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_BASE}/businesslogfile.%d{yyyyMMdd}.%i.log
</fileNamePattern>
<maxFileSize>128MB</maxFileSize>
<maxHistory>60</maxHistory>
<totalSizeCap>30GB</totalSizeCap>
</rollingPolicy>
</appender>
<!--耗时日志 -->
<appender name="TimeCounterLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} -%msg%n</pattern>
</encoder>
<file>${LOG_BASE}/timeCounter.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_BASE}/timeCounter.%d{yyyyMMdd}.%i.log
</fileNamePattern>
<maxFileSize>128MB</maxFileSize>
<maxHistory>60</maxHistory>
<totalSizeCap>30GB</totalSizeCap>
</rollingPolicy>
</appender>
<!--普通日志 -->
<appender name="LOG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} -%msg%n</pattern>
</encoder>
<file>${LOG_BASE}/root.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_BASE}/root.%d{yyyyMMdd}.%i.log
</fileNamePattern>
<maxFileSize>128MB</maxFileSize>
<maxHistory>60</maxHistory>
<totalSizeCap>30GB</totalSizeCap>
</rollingPolicy>
</appender>
<!--错误日志 -->
<appender name="ERROR_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} -%msg%n</pattern>
</encoder>
<file>${LOG_BASE}/error.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_BASE}/error.%d{yyyyMMdd}.%i.log
</fileNamePattern>
<!-- 每天一个日志文件,当天的日志文件超过10MB时,生成新的日志文件,当天的日志文件数量超过totalSizeCap/maxFileSize,日志文件就会被回滚覆盖。 -->
<maxFileSize>128MB</maxFileSize>
<maxHistory>60</maxHistory>
<totalSizeCap>30GB</totalSizeCap>
</rollingPolicy>
</appender>
<root level="INFO">
<appender-ref ref="LOG_FILE" />
<appender-ref ref="STDOUT" />
<appender-ref ref="ERROR_LOG" />
<appender-ref ref="SQL_LOG" />
<appender-ref ref="TimeCounterLog" />
<appender-ref ref="ENGINE_LOG" />
</root>
<logger name="org.hibernate" level="ERROR" />
<logger name="io.netty" level="ERROR" />
<logger name="org.springframework" level="WARN" />
<logger name="org.redisson" level="ERROR" />
<!-- 耗时统计 -->
<logger name="com.sie.snest.engine.utils.TimeCounter" level="DEBUG">
<appender-ref ref="TimeCounterLog" />
</logger>
<!-- SQL日志输出到控制台和SQL_LOG文件,additivity=false表示不向root传递打印信息 -->
<logger name="com.sie.snest.engine.db.relationdb.RelationDBAccessor" level="INFO" additivity="false">
<appender-ref ref="STDOUT" />
<appender-ref ref="SQL_LOG" />
</logger>
<logger name="com.sie.snest" level="INFO">
<appender-ref ref="BUSS_LOG" />
</logger>
<logger name="com.sie.snest.engine" level="INFO">
<appender-ref ref="ENGINE_LOG" />
</logger>
</configuration>