Java 将同一包写入不同应用程序中的不同日志文件
我正在探索log4j的选项,根据应用程序的不同,使用相同的包将消息写入不同的日志文件。这两个应用程序都部署到web服务器上。他们都使用一些共享包,比如com.ps.foo。我的用例是,我希望com.ps.foo消息在服务战争中执行时写入service.log,在web战争中执行时写入web.log 我们需要log4j配置在WAR外部(在本地文件系统中),这样我们就可以在不重新部署/重启web服务器的情况下更改记录器属性,否则我只需将每个log4j配置打包在每个WAR中 我可以将log4j配置文件指定为JVM上的a-D选项,但随后我将降级为使用相同的log4j配置。我不能使用相同的log4j配置文件,因为我无法在应用程序中限定com.ps.foo,我的理解是log4j只关心类 我当前的设计是向每个应用程序添加一个侦听器,该应用程序在servlet上下文初始化时使用自己独特的log4j配置初始化log4j。然后我会有一个特定于应用程序的log4j配置,并在每个配置中指定com.ps.fooJava 将同一包写入不同应用程序中的不同日志文件,java,logging,log4j,Java,Logging,Log4j,我正在探索log4j的选项,根据应用程序的不同,使用相同的包将消息写入不同的日志文件。这两个应用程序都部署到web服务器上。他们都使用一些共享包,比如com.ps.foo。我的用例是,我希望com.ps.foo消息在服务战争中执行时写入service.log,在web战争中执行时写入web.log 我们需要log4j配置在WAR外部(在本地文件系统中),这样我们就可以在不重新部署/重启web服务器的情况下更改记录器属性,否则我只需将每个log4j配置打包在每个WAR中 我可以将log4j配置文件
任何朝正确方向的轻推都会很好。我所能想到的就是为两个war文件实现CustomFileAppender,然后访问部署细节(通过一些全局变量或描述符?),然后从这个appender中选择要写入的正确文件。我可以想为两个war文件实现CustomFileAppender,然后访问部署细节(通过一些全局变量或描述符?)