我正在使用 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/