Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何基于包名拆分日志文件,同时使用很少的共享Java文件?_Java_Logging_Log4j - Fatal编程技术网

如何基于包名拆分日志文件,同时使用很少的共享Java文件?

如何基于包名拆分日志文件,同时使用很少的共享Java文件?,java,logging,log4j,Java,Logging,Log4j,背景:我在com.abc下为需求a开发了一个Java EE web应用程序。一个基本包(a.Java,B.Java,C.Java…100个文件),后来客户想开发另一个需求B,它与需求a非常相似,我决定在同一个web应用程序中,但在不同的基础上开发需求B(A.java、C.java…100个文件)*。两个包很少共享java文件 问题:我正在使用Log4J进行日志记录,现在对于整个项目,我有一个日志文件。我想要两个基于基本包的单独日志文件,并且还想要记录共享文件,即使它在不同的包中 File1>>L

背景:我在com.abc下为需求a开发了一个Java EE web应用程序。一个基本包(a.Java,B.Java,C.Java…100个文件),后来客户想开发另一个需求B,它与需求a非常相似,我决定在同一个web应用程序中,但在不同的基础上开发需求B(A.java、C.java…100个文件)*。两个包很少共享java文件

问题:我正在使用Log4J进行日志记录,现在对于整个项目,我有一个日志文件。我想要两个基于基本包的单独日志文件,并且还想要记录共享文件,即使它在不同的包中

File1>>LogFileForA.txt

File2>>LogFileForB.txt


我可以根据包名轻松地拆分日志文件,但如何拆分日志文件以同时记录共享的Java文件?

这样您就可以在log4j.xml中定义不同的appender了。这将确保com.abc.A写入AFileAppendercom.abc.B写入BFileAppender

log4j.category.com.abc.A = INFO, AFileAppender
log4j.category.com.abc.B = INFO, BFileAppender
log4j.rootLogger = INFO, defaultAppender

我采用了完全不同的方法来处理日志中的共享文件。这个解决方案对我非常有效。多亏了我的技术关键负责人(罗斯·哈迪),他让我走上了正确的道路,完成了这项工作。

感谢分享,但此解决方案不适用于包A与B共享类,包B与共享类。我有一个有效的解决方案,让我在回答中分享