Java SLF 4j日志不会写入日志
日志未正确写入 slf版本slf4j-api-1.7.5.jar、slf4j-log4j12-1.7.5.jar、log4j-1.2.16.jarJava 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
<?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,以确保它执行正确的文件锁定,追加,等等…我正在尝试使用套接字追加器解决此问题。这样行吗?