Log4j和挂线

Log4j和挂线,log4j,slf4j,websphere-7,Log4j,Slf4j,Websphere 7,我们正在使用创建logger的一个实例 private static Logger=Logger.getClass(“ClassName.class”) 每个动作类都有一个记录器。这在我们的测试环境中运行良好。然而,在WAS7的生产环境中,它偶尔会出现线程阻塞。根据IBM服务器分析人员的说法,日志文件在等待数据库更新时被锁定 下面是log4j.xml中的内容 <appender name="logger1" class="org.apache.log4j.DailyRollingFi

我们正在使用创建logger的一个实例

private static Logger=Logger.getClass(“ClassName.class”)

每个动作类都有一个记录器。这在我们的测试环境中运行良好。然而,在WAS7的生产环境中,它偶尔会出现线程阻塞。根据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获取logger,有什么好处吗

编辑:相关要点:log4j.xml在两个应用程序之间共享。应用程序是1个EAR文件中的2个WAR文件。log4j.xml有2个附加器。每个应用程序都会删除代码中的另一个appender

如果我去掉静电有什么好处吗

否。
Logger.getClass
仍将返回相同的实例。因此,这不会改变log4j中锁定的任何内容

如果我使用SL4j LoggerFactory获取logger,有什么好处吗


没有(至少不是因为你面临的问题)。锁定在log4j中完成。SLF4J只是一个仍将委托给log4j的外观(除非您用其他东西替换log4j)。

谢谢您的回复。在主要问题中添加了另一个(可能)相关点。请评论这是否会导致问题?请注意,如果您想获得原始问题的帮助,即挂起的线程,那么您应该发布相关信息,即显示线程挂起位置的堆栈跟踪,而不是推测。