logback异步日志AsyncAppender配置

日志记录会消耗性能,但当出现问题的时候,日志又能够帮助我们快速解决问题。那么如何提高打日志的性能呢?在使用logback的时候,推荐使用AsyncAppender异步记录日志。

1)logback设置AsyncAppender

要注意AsyncAppender异步记录ILoggingEvents,它仅充当事件分派器,因此必须引用另一个appender才能执行任何有用的操作。


  
    myapp.log
    
      [%d{yyyy-MM-dd HH:mm:ss.SSS}] [%level] [%thread] [%logger{50}] >>> %msg%n
    
  

  
    
  

  
    
  

2)参数配置

参数名称 参数类型 建议值 说明
queueSize int

queueSize计算

example:假设IO影响30s,日志和qps比例是1:1,单容器压测值1500 qps则可以推算出queue size的值,queueSize的设置公式:30 *1500=45000。

阻塞队列的最大容量。默认情况下,queueSize设置为256。
discardingThreshold int

使用默认值20,或者设置大于0。

如果设置discardingThreshold=0,表示queue 满了,不丢弃,block线程。

默认情况下,当阻塞队列剩余20%的容量时,它将丢弃级别跟踪、调试和信息事件,只保留级别警告和错误事件。要保留所有事件,请将discardingThreshold设置为0。
neverBlock boolean true 如果为false(默认值),则追加程序将阻止追加到完整队列,而不是丢失消息。设置为true时,附加程序只会丢弃消息,不会阻止您的应用程序。

参考链接:http://logback.qos.ch/manual/appenders.html#AsyncAppender

你可能感兴趣的:(Java)