有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Log4j在一个webapp中提供多种配置

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

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

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

    Web-App
       Component1 
       Component2
       Component3
       Component4

共 (1) 个答案

  1. # 1 楼答案

    您需要为每个服务包定义不同的log4j appender。下面是如何在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的属性文件配置,可以对属性文件使用相同的方法