首页 > 解决方案 > 默认情况下登录 Tomcat 网络服务器是异步的吗?

问题描述

通常我的日志记录如下:

private final Logger LOGGER = org.slf4j.LoggerFactory.getLogger(this.getClass());

问题:如果我将我的应用程序部署为war网络tomcat服务器,默认情况下日志记录是同步的还是异步的?

我问是因为 tomcatslogging.properties文件定义了AsyncFileHandler整个文件,比如.handlers = 1catalina.org.apache.juli.AsyncFileHandler.

我的问题是,如果我所有的日志语句都“传递”到那个 tomcat 异步文件处理程序,然后自动记录异步?

标签: javatomcatslf4j

解决方案


如果您在 Web 应用程序中使用单独的日志记录框架(例如 SLF4J),则 Tomcat 的日志记录无关紧要。SLF4J 文档应该告诉您在该框架中什么是同步的,什么是异步的。

作为记录,Tomcat 的内部日志记录是同步的,直到它到达AsyncFileHandler缓冲位置并在单独的线程上异步写入(因为写入文件系统通常是日志记录调用中最慢的部分)。


推荐阅读