java Logback 日志记录 - 同步或异步

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/30041842/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-11-02 16:20:45  来源:igfitidea点击:

Logback Logging - Synchronous or Asynchronous

javalogginglogback

提问by Sandeep Jindal

Is the default file appended of Logback:

Logback 附加的默认文件是:

ch.qos.logback.core.FileAppender

synchronous or asynchronous? It seems to be synchronous as the logs are being shown as part of same thread.

同步还是异步?它似乎是同步的,因为日志显示为同一线程的一部分。

回答by Petr Jane?ek

Yes, it's synchronous by default. You can see a config example on how to make it asynchronous in the documentation.

是的,默认是同步的。您可以在文档中查看有关如何使其异步的配置示例

This way, you can make anyAppenderasynchronous much easier (by simply wrapping it in an AsyncAppender) than if all Appenderimplementations would have to manage the asynchronicity on their own.

这样,与所有实现都必须自行管理异步性相比,您可以使任何Appender异步变得更容易(通过简单地将其包装在 中AsyncAppenderAppender

回答by ProtossShuttle

Most appenders are synchronous, for example, RollingFileAppender. To enable async logging, you must wrap an appender with AsyncAppenderto create an async appender based on the sync one, and it could be done easily in XML like below.

大多数 appender 是同步的,例如,RollingFileAppender. 要启用异步日志记录,您必须包装一个 appender 以AsyncAppender基于同步 appender 创建一个异步 appender,并且可以像下面这样在 XML 中轻松完成。

<appender name="ASYNC-VERSION-APPENDER" class="ch.qos.logback.classic.AsyncAppender">
    <appender-ref ref="DEFAULT-APPENDER"/>
</appender>
<logger name="ASYNC-LOGGER" level="INFO" additivity="false">
    <appender-ref ref="ASYNC-VERSION-APPENDER"/>
</logger>