【发布时间】:2013-01-08 09:16:02
【问题描述】:
通常在应用程序中(以 Web 应用程序为例),我们在启动期间创建了一个记录器实例。它甚至可以是一个单例,这并不重要。重要的是整个应用程序有 1 个实例。我们使用 java.util.logger
现在想象一下,您有来自两个不同用户的两个请求,它们引发了异常,我们正在记录那些被写入日志文件的请求。这两个不同请求中对日志文件的写入是否以某种方式同步?或者我们是否需要显式同步它们,因为我发现在极少数情况下我们得到的日志都混合在 tomcat 日志文件中的两个请求之间?
我并不完全关心这里的因果关系,只是将两条日志消息分开。
【问题讨论】:
-
如果您在 2 个连续语句中调用日志两次,就会发生混淆的事情。然后不再保证原子性。
-
肯定不会出现在两个连续的语句中。它发生在代码不同部分的不同请求上
-
当我说混合时,我的意思不是一个被另一个截断,而是交错
标签: java logging synchronization java.util.logging