目前所有的日志记录方式采用的都是同步的方式,即直接将日志写入文件。每次日志输出到文件都会进行一次磁盘IO,在多应用的时候这种效果会导致一定的线程运行延迟,所以可以采用异步的方式处理。
采用异步写日志的方式,通过不让主线程去写日志文件而减少磁盘IO,避免并发下造成线程阻塞,从而减少不必要的性能损耗。
异步输出日志的方式很简单,添加一个基于异步写日志的appender,并指向原先配置的appender即可:
操作步骤
step1、原先的appender
1 | <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> |
step2、异步的appender
1 | <!-- 日志信息异步输出配置 --> |
step3、在springProfile多环境配置里,为root标签指定日志异步输出的appender对应的ref值
1 | <springProfile name="qa"> <root level="${level}"> <!--日志信息同步输出--> <appender-ref ref="STDOUT"/> <!--日志信息异步输出--> <!--<appender-ref ref="ASYNC-STDOUT"/>--> </root></springProfile> |