Java 基于log4j/slf4j包的日志记录,如何处理框架,例如spring?

Java 基于log4j/slf4j包的日志记录,如何处理框架,例如spring?,java,spring,logging,log4j,slf4j,Java,Spring,Logging,Log4j,Slf4j,假设我的应用程序由几个单独记录的组件组成: myapp.log myapp-foo.log myapp-bar.log 我的所有类都定义了一个“标准”java记录器: private static final Logger logger = LogManager.getLogger(ThisClass.class); 通过基于包的配置设置组件“foo”和“bar”的日志记录(每个组件都记录到自己的日志文件): 这很好,直到我们希望看到来自我们使用的框架(如spring)的日志消息为止,因

假设我的应用程序由几个单独记录的组件组成:

myapp.log
myapp-foo.log
myapp-bar.log
我的所有类都定义了一个“标准”java记录器:

private static final Logger logger = LogManager.getLogger(ThisClass.class);
通过基于包的配置设置组件“foo”和“bar”的日志记录(每个组件都记录到自己的日志文件):


这很好,直到我们希望看到来自我们使用的框架(如spring)的日志消息为止,因为spring日志语句以
myapp.log
-而不是
myapp foo.log
myapp bar.log
结束

有一个
log4j.xml
log4j2.xml
文件很方便,但是我们可以这样使用基于包的日志配置吗?并且仍然可以将spring日志语句记录到
myapp bar.log
的“正确”日志文件
myapp foo.log

还是有不同的解决方案


编辑:我们正在使用spring 4.0.3.RELEASE和log4j2

您是否还需要myapp-foo.log和myapp-bar.log中的spring日志?这是问题吗?如果是,则为spring多创建一个aopender,并在appender中提供相同的日志文件。是的,这就是计划。实际上,我们已经有了一个单独的
log4j2 modulename.xml
,它指定了一个日志文件。您是否还需要在myapp-foo.log和myapp-bar.log中使用spring日志?这是问题吗?如果是,则为spring多创建一个aopender,并在appender中提供相同的日志文件。是的,这就是计划。实际上,我们已经有了一个单独的
log4j2 modulename.xml
,它指定了一个日志文件。您是否还需要在myapp-foo.log和myapp-bar.log中使用spring日志?这是问题吗?如果是,则为spring多创建一个aopender,并在appender中提供相同的日志文件。是的,这就是计划。实际上,我们有一个单独的
log4j2moduleName.xml
,它指定了一个日志文件。
<Logger name="com.mycompany.myapp.foo" level="info">
    <AppenderRef ref="foo"/>
</Logger>

<Logger name="com.mycompany.myapp.bar" level="info">
    <AppenderRef ref="bar"/>
</Logger>