日志配置文件
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true">
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<logger name="com.sun" level="ERROR"/>
<logger name="sun.rmi" level="ERROR"/>
<logger name="javax.mail" level="ERROR"/>
<logger name="org.bson" level="ERROR"/>
<logger name="org.apache" level="ERROR"/>
<logger name="com.netflix" level="ERROR"/>
<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"/>
// `stdoutAppender`:这是一个控制台输出的输出器,使用`ConsoleAppender`类
<!-- 输出一: 控制台输出 -->
<appender name="stdoutAppender" class="ch.qos.logback.core.ConsoleAppender">
// 它使用`PatternLayoutEncoder`来定义日志的格式
<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>
// `httpInfoAppender`:它是一个按照时间和大小进行滚动的文件输出器,使用`RollingFileAppender`类。它会将日志输出到指定的文件中。文件路径由`logging.path`属性指定,默认为`logs`目录。`logging.file.max-history`属性指定了最多保留的日志文件数量,默认为7个。`logging.file.max-size`属性指定了每个日志文件的最大大小,默认为500MB
<!-- 输出二: 按照每天生成日志文件 -->
<springProperty scope="context" name="log_home" source="logging.path"
defaultValue="logs"/>
<springProperty scope="context" name="max_history" source="logging.file.max-history"
defaultValue="7"/>
<springProperty scope="context" name="max_file_size" source="logging.file.max-size"
defaultValue="500MB"/>
<appender name="httpInfoAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 过滤日志 -->
// 定义了一个过滤器(filter),使用`LevelFilter`类。该过滤器将日志级别设置为`INFO`,表示只接受`INFO`级别及以上的日志,而拒绝低于`INFO`级别的日志;这段代码配置了一个按时间和大小滚动的文件输出器,并设置了过滤器和编码器
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch> <!-- 表示匹配该级别及以上 -->
<onMismatch>DENY</onMismatch> <!-- 表示不匹配该级别以下的 -->
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${log_home}/logger-%d{yyyy-MM-dd}-logger-http-info.%i.log</FileNamePattern>
<!--日志文件保留天数,日志最大大小-->
<maxHistory>${max_history}</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>${max_file_size}</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder charset="UTF-8">
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%.-1024msg%n
</Pattern>
</encoder>
</appender>
<appender name="httpErrorAppender" 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>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${log_home}/logger-%d{yyyy-MM-dd}-logger-http-error.%i.log</FileNamePattern>
<!--日志文件保留天数,日志最大大小-->
<maxHistory>${max_history}</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>${max_file_size}</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder charset="UTF-8">
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%msg%n
</Pattern>
</encoder>
</appender>
<appender name="logInfoAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 过滤日志 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch> <!-- 表示匹配该级别及以上 -->
<onMismatch>DENY</onMismatch> <!-- 表示不匹配该级别以下的 -->
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${log_home}/logger-%d{yyyy-MM-dd}-logger-log-info.%i.log</FileNamePattern>
<!--日志文件保留天数,日志最大大小-->
<maxHistory>${max_history}</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>${max_file_size}</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder charset="UTF-8">
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%.-1024msg%n
</Pattern>
</encoder>
</appender>
<appender name="logErrorAppender" 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>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${log_home}/logger-%d{yyyy-MM-dd}-logger-log-error.%i.log</FileNamePattern>
<!--日志文件保留天数,日志最大大小-->
<maxHistory>${max_history}</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>${max_file_size}</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder charset="UTF-8">
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%msg%n
</Pattern>
</encoder>
</appender>
<appender name="commonInfoAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 过滤日志 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch> <!-- 表示匹配该级别及以上 -->
<onMismatch>DENY</onMismatch> <!-- 表示不匹配该级别以下的 -->
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${log_home}/logger-%d{yyyy-MM-dd}-logger-common-info.%i.log</FileNamePattern>
<!--日志文件保留天数,日志最大大小-->
<maxHistory>${max_history}</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>${max_file_size}</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder charset="UTF-8">
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%msg%n
</Pattern>
</encoder>
</appender>
<appender name="commonErrorAppender" 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>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${log_home}/logger-%d{yyyy-MM-dd}-logger-common-error.%i.log</FileNamePattern>
<!--日志文件保留天数,日志最大大小-->
<maxHistory>${max_history}</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>${max_file_size}</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder charset="UTF-8">
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%msg%n
</Pattern>
</encoder>
</appender>
<appender name="sqlInfoAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 过滤日志 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch> <!-- 表示匹配该级别及以上 -->
<onMismatch>DENY</onMismatch> <!-- 表示不匹配该级别以下的 -->
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${log_home}/logger-%d{yyyy-MM-dd}-logger-sql-info.%i.log</FileNamePattern>
<!--日志文件保留天数,日志最大大小-->
<maxHistory>${max_history}</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>${max_file_size}</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder charset="UTF-8">
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%.-1024msg%n
</Pattern>
</encoder>
</appender>
<appender name="sqlErrorAppender" 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>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${log_home}/logger-%d{yyyy-MM-dd}-logger-sql-error.%i.log</FileNamePattern>
<!--日志文件保留天数,日志最大大小-->
<maxHistory>${max_history}</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>${max_file_size}</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder charset="UTF-8">
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%msg%n
</Pattern>
</encoder>
</appender>
<appender name="insideInfoAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 过滤日志 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch> <!-- 表示匹配该级别及以上 -->
<onMismatch>DENY</onMismatch> <!-- 表示不匹配该级别以下的 -->
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${log_home}/logger-%d{yyyy-MM-dd}-logger-inside-info.%i.log</FileNamePattern>
<!--日志文件保留天数,日志最大大小-->
<maxHistory>${max_history}</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>${max_file_size}</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder charset="UTF-8">
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%.-1024msg%n
</Pattern>
</encoder>
</appender>
<appender name="insideErrorAppender" 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>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${log_home}/logger-%d{yyyy-MM-dd}-logger-inside-error.%i.log</FileNamePattern>
<!--日志文件保留天数,日志最大大小-->
<maxHistory>${max_history}</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>${max_file_size}</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder charset="UTF-8">
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%msg%n
</Pattern>
</encoder>
</appender>
<appender name="insideInfoAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 过滤日志 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch> <!-- 表示匹配该级别及以上 -->
<onMismatch>DENY</onMismatch> <!-- 表示不匹配该级别以下的 -->
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${log_home}/logger-%d{yyyy-MM-dd}-logger-untrustInterface-info.%i.log</FileNamePattern>
<!--日志文件保留天数,日志最大大小-->
<maxHistory>${max_history}</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>${max_file_size}</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder charset="UTF-8">
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%.-1024msg%n
</Pattern>
</encoder>
</appender>
<appender name="insideErrorAppender" 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>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${log_home}/logger-%d{yyyy-MM-dd}-logger-untrustInterface-error.%i.log</FileNamePattern>
<!--日志文件保留天数,日志最大大小-->
<maxHistory>${max_history}</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>${max_file_size}</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder charset="UTF-8">
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%msg%n
</Pattern>
</encoder>
</appender>
<appender name="tencentInfoAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 过滤日志 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch> <!-- 表示匹配该级别及以上 -->
<onMismatch>DENY</onMismatch> <!-- 表示不匹配该级别以下的 -->
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${log_home}/logger-%d{yyyy-MM-dd}-logger-tencent-info.%i.log</FileNamePattern>
<!--日志文件保留天数,日志最大大小-->
<maxHistory>${max_history}</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>${max_file_size}</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder charset="UTF-8">
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%msg%n
</Pattern>
</encoder>
</appender>
<appender name="tencentErrorAppender" 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>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${log_home}/logger-%d{yyyy-MM-dd}-logger-tencent-error.%i.log</FileNamePattern>
<!--日志文件保留天数,日志最大大小-->
<maxHistory>${max_history}</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>${max_file_size}</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder charset="UTF-8">
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%msg%n
</Pattern>
</encoder>
</appender>
<appender name="mobileInfoAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 过滤日志 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch> <!-- 表示匹配该级别及以上 -->
<onMismatch>DENY</onMismatch> <!-- 表示不匹配该级别以下的 -->
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${log_home}/logger-%d{yyyy-MM-dd}-logger-mobile-info.%i.log</FileNamePattern>
<!--日志文件保留天数,日志最大大小-->
<maxHistory>${max_history}</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>${max_file_size}</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder charset="UTF-8">
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%.-1024msg%n
</Pattern>
</encoder>
</appender>
<appender name="mobileErrorAppender" 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>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${log_home}/logger-%d{yyyy-MM-dd}-logger-mobile-error.%i.log</FileNamePattern>
<!--日志文件保留天数,日志最大大小-->
<maxHistory>${max_history}</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>${max_file_size}</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder charset="UTF-8">
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%msg%n
</Pattern>
</encoder>
</appender>
<!-- 普通日志 -->
<logger name="common" additivity="false">
<appender-ref ref="commonInfoAppender"/>
<appender-ref ref="commonErrorAppender"/>
</logger>
<!-- 普通日志 -->
<logger name="http" additivity="false">
<appender-ref ref="httpInfoAppender"/>
<appender-ref ref="httpErrorAppender"/>
</logger>
<!-- nw网接口日志 -->
<logger name="untrustInterface" additivity="false">
<appender-ref ref="insideInfoAppender"/>
<appender-ref ref="insideErrorAppender"/>
</logger>
<!-- tx接口日志 -->
<logger name="tencent" additivity="false">
<appender-ref ref="tencentInfoAppender"/>
<appender-ref ref="tencentErrorAppender"/>
</logger>
<!-- 移动端接口日志 -->
<logger name="mobile" additivity="false">
<appender-ref ref="mobileInfoAppender"/>
<appender-ref ref="mobileErrorAppender"/>
</logger>
<!--请求参数日志-->
<logger name="org.springframework.web.servlet.PageNotFound" additivity="false">
<!-- <appender-ref ref="logInfoAppender"/>-->
<appender-ref ref="logErrorAppender"/>
</logger>
<logger name="org.springframework.web.servlet.DispatcherServlet" additivity="false">
<!-- <appender-ref ref="logInfoAppender"/>-->
<appender-ref ref="logErrorAppender"/>
</logger>
<logger name="org.springframework.web.servlet.NoHandlerFoundException" additivity="false">
<!-- <appender-ref ref="logInfoAppender"/>-->
<appender-ref ref="logErrorAppender"/>
</logger>
<logger name="org.icss.framework.sleuths.provider.DefaultSleuthLogProvider" additivity="false">
<!--<appender-ref ref="logInfoAppender"/>-->
<appender-ref ref="logErrorAppender"/>
</logger>
<logger name="org.icss.framework.sleuths.provider.SleuthLogProviderManager" additivity="false">
<!-- <appender-ref ref="logInfoAppender"/>-->
<appender-ref ref="logErrorAppender"/>
</logger>
<!--SQL参数日志-->
<logger name="com.alibaba.druid.pool.DruidDataSourceStatLoggerImpl" additivity="false">
<appender-ref ref="sqlInfoAppender"/>
<appender-ref ref="sqlErrorAppender"/>
</logger>
<logger name="dao" level="DEBUG" additivity="false">
<appender-ref ref="sqlInfoAppender"/>
<appender-ref ref="sqlErrorAppender"/>
</logger>
</configuration>
后续代码若要使用的话~ 举例:
private static final Logger logger = LoggerFactory.getLogger("common");
最后输出日志文件如下图: