logback性能调优测试

1. RollingFileAppender

配置:

<appender name="localFile"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
            <ImmediateFlush>false</ImmediateFlush>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{32} %L - %msg %n</pattern>
</encoder>
<file>${LOG_HOME}/fileLog.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/fileLog_%d{yyyyMMddHH}_%i.log.zip
</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</appender>

测试30s左右,去掉ImmediateFlush, 37s左右

2. 采用异步输出

配置:

  <appender name ="asyncFile" class= "ch.qos.logback.classic.AsyncAppender">
        <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
        <discardingThreshold >0</discardingThreshold>
        <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
        <queueSize>2048</queueSize>
         <includeCallerData>true</includeCallerData>
        <!-- 添加附加的appender,最多只能添加一个 -->
        <appender-ref ref ="localFile"/>
    </appender>

includeCallerData = true: 27s左右

includeCallerData = false: 22s左右

3. 现网测试

不开启Logback, TPS: 3100左右;

未添加includeCallerData=true和ImmediateFlush=false时, TPS只能到500左右,

添加这两个配置后,TPS能到2900左右

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Logback 是一个 Java 日志框架,它是 log4j 的继任者。在进行 Logback 的性能优化时,可以采取以下步骤: 1. 合理配置日志级别:将日志级别设置为合适的水平,不要记录过多的低级别日志,以减少日志量和性能开销。尽量使用 DEBUG 级别仅在调试阶段启用。 2. 使用异步日志:启用异步日志可以减少主线程的阻塞时间,提高应用程序的性能。可以通过配置 `<appender>` 元素的 `async` 属性为 true 来启用异步日志。 3. 配置适当的日志输出格式:选择适合应用程序需求的日志输出格式,避免过多的额外信息和格式化操作。 4. 配置合适的日志文件大小和数量:通过设置 `<rollingPolicy>` 元素的 `MaxFileSize` 和 `MaxHistory` 属性,限制单个日志文件的大小和保留的历史文件数量,避免产生过大或过多的日志文件。 5. 使用合适的 Appender:选择适合应用程序的 Appender 类型,如使用 `FileAppender` 写入到文件,或使用 `ConsoleAppender` 输出到控制台。 6. 避免频繁地创建 Logger 对象:Logger 对象的创建开销较大,尽量避免在每个方法中都创建 Logger 对象,可以将 Logger 对象作为类的静态成员变量。 7. 避免使用过多的日志输出:日志输出的开销较大,尽量避免在循环或频繁调用的代码块中进行日志输出。 8. 使用条件日志:通过使用条件表达式判断日志是否需要输出,可以减少不必要的日志输出。 9. 合理配置日志框架本身的参数:根据应用程序的需求,配置 logback 的参数,如缓冲区大小、线程池大小等。 以上是一些常见的 Logback 性能优化方法,根据具体的应用场景和需求,还可以进行更细致的优化和调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值