小编Thi*_*ker的帖子

Logback框架中AsyncAppender的配置和性能

嗨目前我正在研究logback日志框架.我遇到了Async Appenders,它使用阻塞队列来记录消息,使得所有线程都将阻塞队列中的消息排入队列,async appender的工作线程负责将消息从队列记录到某个目的地,这可能是由appender决定的.文件,数据库,套接字等

我可以看到响应时间内的性能提升,因为主线程不执行I/O它只推送队列中的消息,而后台工作线程中异步appender检索这些消息并将它们附加到日志文件中.

我的理解是对的吗?我读了几个与async appender相关的配置属性,如队列大小,maxFlushTime,neverBlock,discardingThreshold和includeCallerData.

我应该如何使用这些属性来提高日志记录的性能我的异步Appender的当前配置如下.

<appender name="ASYNC500" class="ch.qos.logback.classic.AsyncAppender">
   <appender-ref ref="fileAppender"/>
   <queueSize>500</queueSize>
  <maxFlushTime>1000</maxFlushTime>
</appender>
Run Code Online (Sandbox Code Playgroud)

有人可以建议我进行一些调整,以获得性能.?哪个更好的普通appender或Async Appender?

java logback spring-boot

5
推荐指数
1
解决办法
4488
查看次数

任何人都可以解释这个使用方法表达式的程序

我正在阅读一些教程,但我无法理解表达式是什么.任何人都可以向我解释这个代码以及为什么/什么时候应该使用它?

 // Method call with "method expression" syntax
 func main() {
    dog := Dog{}
    b := (*Dog).Bark // method expression 
    b(&dog, 5)
 }
 type Dog struct {}

 // Methods have a receiver, and can also have a pointer
 func (d *Dog) Bark(n int) {
   for i := 0; i < n; i++ {
      fmt.Println("Bark");
   }
 }
Run Code Online (Sandbox Code Playgroud)

go

1
推荐指数
1
解决办法
324
查看次数

标签 统计

go ×1

java ×1

logback ×1

spring-boot ×1