我有 4 个 java/Java EE 应用程序- 两个是在 WebSphere 中运行的基于服务器的 j2ee 应用程序。 另外两个是独立的 Java 应用程序。 我的日志记录框架是使用 log4j.properties 的 log4j。
问题 1:我可以使用同一个日志文件来记录所有应用程序的日志吗?即使所有应用程序同时写入,是否会导致任何文件写入问题?
问题2:如果所有的应用程序都可以正常写入,我如何将应用程序名称预先附加到每个日志语句中?
最佳答案
问题一:
我相信默认情况下它不会工作。
如果您正在使用 SLF4J,请考虑切换到 LogBack。 LogBack的FileAppender中有一个prudent模式,允许不同JVM的多个FileAppenders写入同一个日志文件(当然,都需要开启prudent模式)
http://logback.qos.ch/manual/appenders.html#prudent
问题二: 您永远不应该通过手动记录您的应用程序名称来使日志消息不同。
有很多方法可以做。最简单的方法是:当您有两个不同的应用程序时,您可以为它们使用不同的日志记录配置文件。只需在 appender 使用的日志模式中添加相应的应用程序名称信息即可满足您的需求。
关于java - 写入同一个 log4j 日志文件的不同应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14352520/