这是一个独立的Java应用程序。
我正在使用下面的配置文件,并遇到了两个问题。
1)我将日志输出到标准输出,但我不知道为什么。
2)尽管我已经尝试只将错误和更高级别的日志消息定向到错误日志,但我仍然在我的错误日志中获取所有日志消息。
我使用BasicConfigurator而没有指定log4j.xml文件的显式路径。该xml文件与我的类在同一个jar文件中。除了这些问题外,它还创建并写入适当的日志,因此应用了配置。
3)此外,我无法让log4j.xml文件位于jar文件之外,以便我可以在运行时进行更改。我该如何做?
<!--appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
<param name="Threshold" value="DEBUG"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-5p [%F:%L] - %m%n"/>
</layout>
</appender-->
<!-- working dir is $CATALINA_TMPDIR. send logs to log dir. -->
<appender name="ROLL" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="/var/log/company/application.log"/>
<param name="MaxFileSize" value="5MB"/>
<param name="MaxBackupIndex" value="9"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c %x - %m%n"/>
</layout>
</appender>
<appender name="ERRORLOG" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="/var/log/rocketvox/company/error.log"/>
<param name="MaxFileSize" value="5MB"/>
<param name="MaxBackupIndex" value="9"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c %x - %m%n"/>
</layout>
</appender>
<category name="com.company">
<priority value="ALL"/>
<appender-ref ref="ROLL"/>
</category>
<category name="com.mattx">
<priority value="ALL"/>
<appender-ref ref="ROLL"/>
</category>
<root>
<priority value="error"/>
<appender-ref ref="ERRORLOG"/>
</root>
BasicConfigurator
使用一个ConsoleAppender
,将日志事件附加到System.out
。 - mre