4

我有 4 个 java/Java EE 应用程序——两个是在 WebSphere 中运行的基于服务器的 j2ee 应用程序。其他两个是独立的 Java 应用程序。我的日志框架是使用 log4j.properties 的 log4j。

问题 1:我可以拥有一个相同的日志文件来记录所有应用程序。即使所有应用程序同时写入,它会导致任何文件写入问题吗?

问题2:如果所有应用程序都可以正常写入,我如何将应用程序名称预先附加到每个日志语句中?

4

1 回答 1

2

问题一:

我相信默认情况下它不会工作。

如果您使用的是 SLF4J,请考虑切换到 LogBack。在 LogBack 的 File Appender 中,有一个谨慎模式,允许不同 JVM 中的多个 FileAppender 写入同一个日志文件(当然,它们都需要开启谨慎模式)

http://logback.qos.ch/manual/appenders.html#prudent

问题 2:您永远不应该通过手动记录您的应用名称来使日志消息有所不同。

有很多方法可以做。最简单的方法是:由于您有两个不同的应用程序,您可以为它们设置不同的日志记录配置文件。只需在 appender 使用的日志模式中添加相应的应用名称信息即可满足您的需求。

于 2013-01-16T08:21:11.763 回答