Java SLF 4j日志不会写入日志

Java SLF 4j日志不会写入日志,java,log4j,slf4j,Java,Log4j,Slf4j,日志未正确写入 slf版本slf4j-api-1.7.5.jar、slf4j-log4j12-1.7.5.jar、log4j-1.2.16.jar <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <!-- log4j generic catchall for adapters. --> <log4j:configuration

日志未正确写入

slf版本slf4j-api-1.7.5.jar、slf4j-log4j12-1.7.5.jar、log4j-1.2.16.jar

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<!-- log4j generic catchall for adapters. -->
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<!-- Example DailyRollingFile appender, this is the preferred logging appender -->

    <appender name="CommonAdapterAppender" class="org.apache.log4j.DailyRollingFileAppender">
      <param name="file" value="/opt/adapter.log" />
      <param name="encoding" value="UTF-8" />
      <param name="append" value="true" />
      <!-- Rollover at the top of every hour -->
      <param name="DatePattern" value="'.'yyyy-MM-dd-HH" />
      <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern"
          value="%d{yyyy-MM-dd HH:mm:ss.SSS-zzz} %5p [%t] %c{1} - %m%n" />
      </layout>
    </appender>

    <!-- Categories -->
    <category name="com.other" additivity="false">
      <priority value="warn" />
    </category>

    <logger name="com.adapter" additivity="false">
        <level value="debug" />
        <appender-ref ref="CommonAdapterAppender"/>
    </logger>
    <logger name="com.adaptations" additivity="false">
        <level value="debug" />
        <appender-ref ref="CommonAdapterAppender"/>
    </logger>

    <root>
        <priority value="error" />
        <appender-ref ref="CommonAdapterAppender" />
        <!-- <appender-ref ref="SyslogAppender"/> -->
    </root>
</log4j:configuration>

上面的log4j文件由多个适配器使用。它第一次写入adapter.log,之后只写入一些组件日志。我还注意到,在第二次之后,它会向adapter.log写入一些日志


我不明白这里出了什么问题。有人能帮我一下吗?

如果您想使用相同的日志文件,我相信您应该为所有适配器使用一个共享日志4J配置和实例


实际上,Log 4j实例可能正在争夺文件的控制权。

这些“适配器”部署在应用程序服务器或servlet容器中?这些是具有单个JVM的独立适配器。因此,我不会对所有适配器使用同一个日志文件,也不会编写自己的appender,以确保它执行正确的文件锁定,追加,等等…我正在尝试使用套接字追加器解决此问题。这样行吗?