JAVA | logback.xml 配置日志输出到指定单独文件夹

项目中会有很多的日志打印,如果开启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。

猜你喜欢

转载自blog.csdn.net/u012294515/article/details/108418761