问题
I am trying to adopt Log4j2 in my new project, but I get my logs in catalina.out
, and the first one is always: ERROR StatusLogger Unable to locate a logging implementation, using SimpleLogger
. It seems that I have done everything according to Log4j2 docs, but still.
Here is what I have actually done:
- added
log4j-api-2.0-beta3.jar
to my project - created a
log4j2.xml
file and put it in a location that is on the classpath (currently, in/usr/local/tomcat/home/lib
. In fact, I took a sample file from Log4J2 web-page. - restarted tomcat.
I am using Tomcat 7, MacOS X 10.8, Java 7.
What am I missing?
Just in case, here is the log4j2.xml I am using:
<?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>
回答1:
I had the same problem. After adding also log4j-core-2.0-beta3.jar to the classpath it worked.
回答2:
In Maven you normally have this logging configuration:
<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>
To add the log core lib you have to:
- Add the 2.0.1 to the properties section
Add the log core dependency:
<dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>${log4j2-version}</version> </dependency>
回答3:
Updated to the version 2.7
Add the next jars to your project:
- log4j-api-2.7.jar
- log4j-core-2.7.jar
If you are using Maven, add the dependency:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.7</version>
</dependency>
回答4:
I use log4j2.8.2 and I let it auto config successfully by putting log4j2.xml in the web classes folder (WEB-INF/classes/log4j2.xml)
来源:https://stackoverflow.com/questions/13438871/log4j2-configuring