不同的应用程序写入相同的log4j日志文件

时间:2013-01-16 06:27:47

标签: java java-ee logging log4j

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

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

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

1 个答案:

答案 0 :(得分:2)

问题1:

我相信默认情况下它不起作用。

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

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

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

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