java很好的方式日志4j根据模块写入不同的文件
嗨,我的应用程序中有很多模块,每个模块都有不同的软件包。我的应用程序假设为每个模块创建不同的文件。我是通过以下方式做到这一点的
<appender name="module1" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="/var/log/camel/module1.log" />
<param name="DatePattern" value="'.'yyyy-MM-dd" />
<param name="Append" value="true" />
<param name="Threshold" value="DEBUG" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %p [%c] - %m%n" />
</layout>
<param name="additivity" value="false" />
</appender>
<logger name="com.package.module1">
<level value="DEBUG" />
<appender-ref ref="module1" />
</logger>
它工作得很完美,但需要进一步改进
任何模块都会有这么多日志条目?我可以链接一些属性文件并在那里提供类/包映射吗
我如何处理公共框架类呢?现在我把它当作模块来处理
谢谢你的帮助
# 1 楼答案
您应该切换到LogCub,并考虑使用sifpIdAppNoter。这一个按你想要的方式分割你的日志文件
# 2 楼答案
我不确定是否有任何方法在基本log4japi中使用属性文件,但您当然可以在一些初始化代码中以编程方式尝试这种方法。首先用XML创建基本定义,如下所示:
然后在一些Java代码中执行此操作,当应用程序在模块需要日志记录之前启动时,会调用这些代码:
您可以决定
modules
如何以您喜欢的方式获取值(通过反射、属性文件等)。我还没有尝试过这段代码,但我认为值得一试