1

我有一个我正在尝试使用的网络应用程序。我的网络应用程序中有不同的服务。每个都提供独特的功能,但访问相同的数据库。每个服务都与数据库通信,添加或更新内容,GUI 显示输出。我正在使用 Spring、maven 并使用 mybatis 进行 SQL 映射。我将所有内容打包成一个战争文件并将其部署到 Tomcat 上。

我希望 Web 应用程序的每个组件都记录它执行的 SQL 查询。我使用 log4j 作为日志引擎。如何让每个组件使用不同的 log4j 配置?jdbcdslog 可以帮我存储一些与查询相关的元数据吗?

基本上我想将数据记录到每个组件的单独日志文件中。log4j 只选择它从组件加载的最后一个配置文件。所有其他配置都没有用。所以我试图找到一种方法来分离每个组件的日志数据。

    Web-App
       Component1 
       Component2
       Component3
       Component4
4

1 回答 1

1

您需要为每个服务包定义不同的 log4j 附加程序。这是在 log4j.xml 中执行此操作的方法:

附加器1

<category name="com.test.project.Component1" additivity="true">
    <priority value="DEBUG"/>
    <appender-ref ref="LOG1"/>
</category>

附加器2

<category name="com.test.project.Component2" additivity="true">
    <priority value="TRACE"/>
    <appender-ref ref="LOG2"/>
</category>

如果您使用 log4j 的属性文件配置,您可以对属性文件使用相同的方法。

于 2013-07-30T03:42:48.460 回答