java - 写入同一个 log4j 日志文件的不同应用程序

标签 java jakarta-ee logging log4j

我有 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/

相关文章:

java - 合并排序具有可变字数的多个文件

java - 在 Libgdx 中创建水

java - 使用java创建凯撒密码方法

Java哈希码逻辑

java - 如何在 Hibernate 中重用模型而不创建新模型

java - 在总线上创建到安全消息传递引擎的连接时,Websphere 仍然抛出“未指定用户”

linux - Windows powershell 中的 tail -f 是什么?

java - Eclipse MapReduce 错误 : UnModifiableMap

Windows 服务正在运行但事件日志不工作

java - Log4j 异步附加器的使用?