繁体   English   中英

log4j根据调用的位置登录到同一程序包的不同文件中

[英]log4j logs into different files for same package based on where it was called from

可以说我的项目有3个软件包,我正在使用log4j进行日志记录。 org.a,org.b,org.c,其中org.c具有一些utils代码,这些代码在程序包“ a”和程序包“ b”中进行调用。

如果我将日志从org.a配置为转到文件1,从org.b配置为日志转到文件2。 我希望如果'c'的调用者是'org.a'中的某个类,则来自软件包'c'的日志进入file1,如果'c'的调用者是'org.b'中的某个类,则进入file2。

请让我知道是否有任何基于配置或编程的方式来执行此操作。

潜在的主要问题:

我正在apache ambari项目中,将视图部署为jar / war文件。 每个视图都定义一个唯一的包名称,并且所有代码都在该包内部。 Ambari项目只是使用单独的类加载器加载这些jar / wars。 但是log4j由主要的Ambari项目实例化。 我已经基于每个视图的包为每个视图配置了单独的日志文件,并使用PropertyConfigurator 动态加载了它们 问题是当前来自/ contrib / views / commons之类的通用软件包的日志进入Ambari的日志文件,而不是单个视图的日志文件。 如果我将基于程序包名称进行配置,则这些程序包中的所有日志都将进入该视图的任何日志文件中,而不是基于调用者视图。

如果在通用模块的日志文件中打印呼叫者信息怎么办?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM