我使用log4j2,并在log4j2.xml中配置了我的配置(在类路径中,所以它自动配置)
在这种特殊情况下,我想为每个进程创建单独的日志文件。
我有一个包含多个包和多个类的框架。他们都有如下声明:
Logger logger = LogManager.getLogger(getClass());
假设我现在有三个进程A,B和C.我应该如何配置log4j以获取三个输出文件A.log,B.log和C.log并包含在框架类中进行的日志记录调用?
如果我需要调试等,我还希望能够将单个包/类记录到其他日志追加器中,所以我更愿意保留上面提到的getClass()参数。
欢迎所有想法!
答案 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]中查看详情。