我们正在使用
创建一个记录器实例 private static Logger = Logger.getClass("ClassName.class");
每个动作类都有一个记录器。这在我们的测试环境中运行良好。但是,它在生产环境中偶尔会在WAS 7中挂起线程。根据IBM服务器分析师的说法,日志文件在等待数据库更新时被锁定。
以下是我在log4j.xml中的内容。
<appender name="logger1" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="/logs1/logFile.log" />
<param name="DatePattern" value="'.'yyyy-MM-dd" />
<param name="Threshold" value="DEBUG" />
<param name="Append" value="true" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p (%F:%L) - %m%n" />
</layout>
</appender>
有人可以帮忙吗?如果我移除静电有什么好处吗?如果我使用SL4j LoggerFactory获取记录器有什么好处吗?
编辑:相关点:log4j.xml在两个应用程序之间共享。应用程序是1个EAR文件中的2个WAR文件。 log4j.xml有2个appender。每个应用程序都会删除代码中的其他appender。
答案 0 :(得分:0)
如果我删除静电有什么好处吗?
没有。 Logger.getClass
仍然会返回相同的实例。因此,对于log4j中的锁定,这不会改变任何内容。
如果我使用SL4j LoggerFactory获取记录器有什么好处吗?
否(至少不是你面临的问题)。锁定在log4j中完成。 SLF4J只是一个仍然委托给log4j的外观(除非你用其他东西替换log4j)。