假设我的应用程序由几个单独记录的组件组成:
myapp.log
myapp-foo.log
myapp-bar.log
我的类都定义了一个“标准”java记录器:
private static final Logger logger = LogManager.getLogger(ThisClass.class);
记录组件“foo”和“bar”是通过基于包的配置设置的(每个组件都记录到它自己的日志文件中):
<Logger name="com.mycompany.myapp.foo" level="info">
<AppenderRef ref="foo"/>
</Logger>
<Logger name="com.mycompany.myapp.bar" level="info">
<AppenderRef ref="bar"/>
</Logger>
这很好,直到我们想要查看来自我们使用的框架的日志消息,例如spring,因为spring日志语句最终在myapp.log
- 而不是myapp-foo.log
或{{ 1}}。
有一个myapp-bar.log
或log4j.xml
文件很方便,但是我们可以用这种方式使用基于包的日志配置 - 并且仍然将spring日志语句记录到“正确”的日志中log4j2.xml
的文件,myapp-foo.log
?
或者有不同的解决方案吗?
编辑:我们使用的是spring 4.0.3.RELEASE和log4j2