我有4个java / Java EE应用程序 - 两个是在WebSphere中运行的基于服务器的j2ee应用程序。 其他两个是独立的Java应用程序。 我的日志框架是log4j,使用log4j.properties。
问题1:我是否可以使用相同的日志文件来记录所有应用程序。即使所有应用程序同时写入,它是否会导致任何文件写入问题?
问题2:如果所有应用程序都可以正常编写,那么如何将应用程序名称预先附加到每个日志语句中?
答案 0 :(得分:2)
问题1:
我相信默认情况下它不起作用。
如果您使用的是SLF4J,请考虑切换到LogBack。在LogBack的File Appender中,有一种谨慎模式,允许不同JVM中的多个FileAppender写入相同的日志文件(当然,所有这些都需要打开谨慎的模式)
http://logback.qos.ch/manual/appenders.html#prudent
问题2: 您不应该通过手动记录您的应用名称来使日志消息不同。
有很多方法可以做。最简单的方法是:由于您有两个不同的应用程序,因此可以为它们提供不同的日志配置文件。只需在appender使用的日志模式中添加相应的应用程序名称信息即可满足您的需求。