2

通常在应用程序(以 Web 应用程序为例)中,我们有一个在启动期间创建的记录器实例。它甚至可以是一个单例,这并不重要。重要的是整个应用程序有 1 个实例。我们使用 java.util.logger

现在想象一下,您有来自两个不同用户的两个请求,它们引发了异常,我们正在记录那些写入日志文件的请求。这两个不同请求中对日志文件的写入是否以某种方式同步?或者我们是否需要显式同步它们,因为我发现在极少数情况下我们得到的日志都混合在 tomcat 日志文件中的两个请求之间?

我并不完全关心这里的因果关系,只是分离两条日志消息。

4

1 回答 1

6

您不需要任何同步,引用JavaDoc 的Logger

Logger 上的所有方法都是多线程安全的。

请注意,来自不同线程的单独调用仍然可以交错。这只是意味着您不会让一条消息被另一条消息打断和分割。

于 2013-01-08T09:19:35.157 回答