これはスタンドアロンのJavaアプリケーションです。log4jはコンソールにログを記録するのはなぜですか?
下記の設定ファイルを使用していますが、2つの問題があります。
1)ログをstdoutに取得していますが、理由がわかりません。
2)私はエラーログだけにエラー以上を指示しようとしていても、エラーログにすべてのログメッセージを表示しています。
Log4j.xmlファイルへの明示的なパスを指定せずにBasicConfiguratorを使用しています。 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'](http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/BasicConfigurator.html#BasicConfigurator%28%29)は、[' ConsoleAppender'](http ://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/ConsoleAppender.html) 'System.out'にログイベントを追加します – mre