项目中会有很多的日志打印,如果开启debug模式,即使只输出某个类的日志,在数据量非常大的时候也会将日志打印很多,特别是要打印数据库语句的时候。那么如何将某个类下的数据库读写操作的debug日志单独打印到一个日志中,并输出到指定的文件夹呢?
配置
lockback.xml 配置文件
<!-- 配置mongodb日志输出至单独的日志文件中 -->
<appender name="mongodb_log" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>
${logs.dir}/app_mongodb_log.%d{yyyy-MM-dd}.%i.log
</FileNamePattern>
<cleanHistoryOnStart>false</cleanHistoryOnStart>
<!-- 最多保存30天日志-->
<MaxHistory>30</MaxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!--日志文件最大的大小-->
<maxFileSize>30MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<charset>UTF-8</charset>
<Pattern>
%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] %logger - %msg%n
</Pattern>
</encoder>
</appender>
<!-- 日志输出级别 -->
<root>
<level value="WARN" />
<appender-ref ref="stdout" />
<appender-ref ref="file" />
<!--将新增的配置添加进root中统一设置输出级别 -->
<appender-ref ref="mongodb_log" />
</root>
<!--打印 MongoTemplate 类下的debug日志,并输出到mongodb_log的配置下-->
<logger name="org.springframework.data.mongodb.core.MongoTemplate" level="DEBUG" additivity="false">
<appender-ref ref= "mongodb_log"/>
</logger>
说明:
additivity
设为false,则子Logger只会在自己的appender里输出,而不会在父Logger的appender里输出。默认为true。