新しいプロジェクトでLog4j2を採用しようとしていますが、ログはcatalina.out
で取得します。最初のログは常にERROR StatusLogger Unable to locate a logging implementation, using SimpleLogger
です。 Log4j2のドキュメントによると、すべてを行ったようですが、それでもです。
私が実際にやったことは次のとおりです。
log4j-api-2.0-beta3.jar
をプロジェクトに追加しましたlog4j2.xml
ファイルを作成し、クラスパス(現在、/usr/local/Tomcat/home/lib
内)にある場所に配置します。実際、Log4J2 Webページからサンプルファイルを取得しました。Tomcat 7、MacOS X 10.8、Java 7。
私は何が欠けていますか?
念のため、私が使用しているlog4j2.xmlは次のとおりです。
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="warn" name="MyApp" packages="">
<appenders>
<File name="MyFile" fileName="logs/app.log">
<PatternLayout>
<pattern>%d %p %C{1.} [%t] %m%n</pattern>
</PatternLayout>
</File>
</appenders>
<loggers>
<root level="trace">
<appender-ref ref="MyFile"/>
</root>
</loggers>
</configuration>
同じ問題がありました。また、log4j-core-2.0-beta3.jarを機能するクラスパスに追加しました。
Mavenには通常、次のロギング構成があります。
<properties>
<slf4j-version>1.7.7</slf4j-version>
<slf4j-log4j2-version>2.0.1</slf4j-log4j2-version>
</properties>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j-version}</version>
</dependency>
<dependency>
<groupId>org.Apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>${slf4j-log4j2-version}</version>
</dependency>
ログコアライブラリを追加するには、以下を行う必要があります。
ログコアの依存関係を追加します。
<dependency>
<groupId>org.Apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>${log4j2-version}</version>
</dependency>
バージョン2.7に更新
次のjarをプロジェクトに追加します。
Mavenを使用している場合、依存関係を追加します。
<dependency>
<groupId>org.Apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.7</version>
</dependency>
Log4j2.8.2を使用し、webクラスフォルダー(WEB-INF/classes/log4j2.xml)にlog4j2.xmlを配置することにより、自動構成を成功させました。