【问题标题】:java log4j choose which file to log tojava log4j 选择要记录到哪个文件
【发布时间】:2012-02-23 00:26:42
【问题描述】:

我需要将同一类的调试消息记录到不同的文件中。
我的意思是,在同一个类中,我需要一个特定的调试语句去fileA,而另一个具体的调试语句去fileB

如果不清楚,我想做的是将网络消息记录到一个完全独立的文件中,而不是此类输出的其他登录消息。

如果我这样做了

<logger name="com.test.modules" additivity="false" >
    <priority value="debug"/>
    <appender-ref ref="netWorkCommunication"/>  
    <appender-ref ref="generalDebug"/>  
  </logger>  

然后我班级的日志记录将转到两个文件(因为它来自同一个包)。

如何配置 log4j 以便我可以从 com.test.modules 下的类中选择哪个日志记录语句转到 which file appender

【问题讨论】:

    标签: java tomcat logging log4j


    【解决方案1】:

    这看起来确实是一个应该使用多个记录器的场景。为网络配置一个单独的记录器,并为其指定一个不同的附加程序。

    【讨论】:

      【解决方案2】:

      为每个文件使用单独的 Logger:

      private static Logger log = Logger.getLogger(YourClass.class);
      private static Logger networkLog = Logger.getLogger("network." + YourClass.class.getName());
      private static Logger httpLog = Logger.getLogger("http." + YourClass.class.getName());
      

      并像往常一样为每个 Logger 定义 appender。

      【讨论】:

        猜你喜欢
        • 2017-09-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-25
        • 1970-01-01
        相关资源
        最近更新 更多