每个进程创建log4j日志文件

时间:2014-11-27 11:05:43

标签: java logging log4j log4j2

我使用log4j2,并在log4j2.xml中配置了我的配置(在类路径中,所以它自动配置)

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

我有一个包含多个包和多个类的框架。他们都有如下声明:

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

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

如果我需要调试等,我还希望能够将单个包/类记录到其他日志追加器中,所以我更愿意保留上面提到的getClass()参数。

欢迎所有想法!

2 个答案:

答案 0 :(得分:0)

为每个进程提供自己的配置文件。在这些配置中指定不同的路径。

您可以使用以下系统属性指定配置文件的完整路径: -Dlog4j.configurationFile=path/to/log4j2.xml

答案 1 :(得分:0)

您可以在创建进程时添加所需的名称,向Java虚拟机添加参数。 e.g:

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

所以,你可以使用它:

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

Apache Log4j 2 User's Guide [PDF]中查看详情。