Log4j 2.0-rc1とlog4j.properties
ファイルを使用してサンプルを実行していますが、log4j libは常にデフォルト設定(ログレベル、アペンダーなど)で実行します。また、名前をlog4j2.properties
に変更しようとしましたが、何も起こりませんでした。
Log4j 2はLog4j v1 ".properties"形式をサポートしなくなりました(v2.4以降、Log4jはProperty形式をサポートしますが、構文は v1形式とはまったく異なります )。新しい形式はXML、JSON、およびYAMLです。 ドキュメント を参照してください(注:「.properties」というファイルでこれらの形式のいずれかを使用した場合、混乱する可能性があります)。
構成ファイルの場所を指定するには、システムプロパティlog4j.configurationFile
、Log4jクラスConfigurationFactory
、または他の何か? このマニュアルページ を読みましたか? Log4j 2の構成構文はLog4j 1.xの構文とは異なりますが、すべてではないとしても、ほとんどの場合、同じ機能が利用できます。
そのため、レガシーLog4j1.x log4j.properties
fileはそのままではサポートされていません。v2.x形式に移行する必要があります。ただし、上記のリンクの例を見ると、移行は非常に簡単に思えます。以下が抜粋です。
Log4j v1.x構成ファイルの例:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//Apache//DTD LOG4J 1.2//EN" "log4j.dtd">
<log4j:configuration xmlns:log4j='http://jakarta.Apache.org/log4j/'>
<appender name="STDOUT" class="org.Apache.log4j.ConsoleAppender">
<layout class="org.Apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
</layout>
</appender>
<category name="org.Apache.log4j.xml">
<priority value="info" />
</category>
<Root>
<priority value ="debug" />
<appender-ref ref="STDOUT" />
</Root>
</log4j:configuration>
Log4j v2に移行された同じ構成ファイル:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
</Console>
</Appenders>
<Loggers>
<Logger name="org.Apache.log4j.xml" level="info"/>
<Root level="debug">
<AppenderRef ref="STDOUT"/>
</Root>
</Loggers>
</Configuration>
バージョン2.4の時点で、Log4J2は.propertyファイルをサポートするようになりました。 プロパティ設定 のドキュメントのこちらをご覧ください。
プロパティを使用した構成
バージョン2.4から、Log4jはプロパティファイルを介した構成をサポートするようになりました。プロパティの構文はLog4j 1で使用される構文と同じではないことに注意してください。XMLおよびJSON構成と同様に、プロパティ構成はプラグインとプラグインの属性に関して構成を定義します。
Log4j 2は、新しい構成ファイル形式を使用します。 XML(デフォルト)、JSON(追加のライブラリ)、またはYAML(再び、ライブラリ)を使用する必要があります。 ドキュメント をご覧ください。