我有一个我正在尝试使用的网络应用程序。我的网络应用程序中有不同的服务。每个提供一个独特的功能,但访问相同的数据库。每个服务与数据库通信,添加或更新内容,GUI显示输出。 我正在使用Spring,maven和使用mybatis进行SQL映射。我将所有内容打包到war文件中并将其部署到Tomcat上。
我希望web-app的每个组件都记录它执行的SQL查询。我使用log4j作为日志引擎。如何让每个组件使用不同的log4j配置? jdbcdslog可以帮我存储一些与查询相关的元数据吗?
基本上我想将数据记录到每个组件的单独日志文件中。并且log4j仅获取它从组件加载的最后一个配置文件。所有其他配置都没用。所以我试图找到一种方法来分离每个组件的日志数据。
Web-App
Component1
Component2
Component3
Component4
答案 0 :(得分:1)
您需要为每个服务包定义不同的log4j appender。以下是在log4j.xml中执行此操作的方法:
Appender1
<category name="com.test.project.Component1" additivity="true">
<priority value="DEBUG"/>
<appender-ref ref="LOG1"/>
</category>
Appender2
<category name="com.test.project.Component2" additivity="true">
<priority value="TRACE"/>
<appender-ref ref="LOG2"/>
</category>
如果使用log4j的属性文件配置,则可以对属性文件使用相同的方法。