通常,我的日志记录如下:
private final Logger LOGGER = org.slf4j.LoggerFactory.getLogger(this.getClass());
问题:如果我将应用程序作为war
部署到tomcat
网络服务器,默认情况下是日志同步还是异步?
我问是因为tomcats logging.properties
文件定义了AsyncFileHandler
,就像.handlers = 1catalina.org.apache.juli.AsyncFileHandler
一样。
我的问题是,是否我所有的日志语句都“传递”给了该tomcat异步文件处理程序,然后自动记录了异步?
答案 0 :(得分:1)
Tomcat的日志记录是无关的。 SLF4J文档应该告诉您在该框架中什么是同步的,什么是异步的。
为便于记录,Tomcat的内部日志记录是同步的,直到到达AsyncFileHandler
为止,该缓冲区被缓冲并异步写入一个单独的线程(因为写入文件系统通常是日志记录调用中最慢的部分)