嗨目前我正在研究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?
我正在阅读一些教程,但我无法理解表达式是什么.任何人都可以向我解释这个代码以及为什么/什么时候应该使用它?
// 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)