java - 每个进程创建 log4j 日志文件

标签 java logging log4j log4j2

我正在使用 log4j2,并在 log4j2.xml 中进行配置(在类路径中,因此它是自动配置的)

在这种特殊情况下,我想为每个进程创建单独的日志文件。

我有一个包含多个包和多个类的框架。他们都有这样的说法:

Logger logger = LogManager.getLogger(getClass());

假设我现在有三个进程 A、B 和 C。我应该如何配置 log4j 来获取三个输出文件 A.log、B.log 和 C.log 并包含在框架类中进行的日志记录调用?

如果我需要调试等,我还希望能够将各个包/类记录到其他日志附加程序,因此我更愿意保留上面提到的 getClass() 参数。

欢迎所有想法!

最佳答案

您可以在创建进程时添加所需的名称,从而向 Java 虚拟机添加参数。例如:

java -Dcustom.log.name=/tmp/logs/A.log ... ...

所以,你可以使用它:

<File name="Application" fileName="${custom.log.name}">

查看更多Apache Log4j 2 User's Guide [PDF ].

关于java - 每个进程创建 log4j 日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27169127/

相关文章:

java - JTable 单元格中的 JButtons 在选择行时更改形状

java - 为什么我的微调器没有填充

python - 为什么python日志记录RotatingFileHandler在多个进程中使用时会丢失记录?

Python日志记录为ini文件中的处理程序添加过滤器?

c++ - c++ 日志库异步捕获高吞吐量数据的可行性?

java - 什么时候以及为什么在打印日志时使用字符串格式更好?

java - 获取当前时间、设置对象时间并进行比较

logging - 使用 log4j 进行 Keycloak 日志记录以使用自定义滚动附加程序

java - "This version of SLF4J requires log4j version 1.2.12"log4j 1.2.17 警告

java - 限制 <form :select> from being databound to modelAttribute if a specific <form:option> is selected