java - 默认情况下登录 Tomcat 网络服务器是异步的吗?
问题描述
通常我的日志记录如下:
private final Logger LOGGER = org.slf4j.LoggerFactory.getLogger(this.getClass());
问题:如果我将我的应用程序部署为war
网络tomcat
服务器,默认情况下日志记录是同步的还是异步的?
我问是因为 tomcatslogging.properties
文件定义了AsyncFileHandler
整个文件,比如.handlers = 1catalina.org.apache.juli.AsyncFileHandler
.
我的问题是,如果我所有的日志语句都“传递”到那个 tomcat 异步文件处理程序,然后自动记录异步?
解决方案
如果您在 Web 应用程序中使用单独的日志记录框架(例如 SLF4J),则 Tomcat 的日志记录无关紧要。SLF4J 文档应该告诉您在该框架中什么是同步的,什么是异步的。
作为记录,Tomcat 的内部日志记录是同步的,直到它到达AsyncFileHandler
缓冲位置并在单独的线程上异步写入(因为写入文件系统通常是日志记录调用中最慢的部分)。
推荐阅读
- java - 如何在Java中的exe文件末尾写一个字符串
- python - 简化 Python 中的一系列 elif 语句
- c# - Stripe PaymentIntent 键未定义 | 无法从控制器传递 ClientSecret 密钥 | ASP.NET MVC
- r - 用样本 ID 标记 ggplot2 箱线图点
- c++ - 除了遗产之外,这个“:”运算符是什么意思?- 使用字符串到字符的转换
- r - 制作具有许多相同向量的倍数作为其列的数据框的简洁方法是什么?
- ms-access - MS Access - 压缩和修复大型数据库
- node.js - 我收到一条错误消息,说 model.findOne() 不起作用
- xml - 使用 VBA 解析 XML
- css - CSS:普遍适用位置:相对