Log4j2 - configuring
Asked Answered
P

6

31

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:

  1. added log4j-api-2.0-beta3.jar to my project
  2. 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.
  3. 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>

Psychosis answered 18/11, 2012 at 9:15 Comment(0)
S
37

I had the same problem. After adding also log4j-core-2.0-beta3.jar to the classpath it worked.

Staciestack answered 18/11, 2012 at 16:30 Comment(0)
C
16

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:

  1. Add the 2.0.1 to the properties section
  2. Add the log core dependency:

    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>${log4j2-version}</version>
    </dependency>
    
Cele answered 19/8, 2014 at 7:59 Comment(0)
P
7

New icon Updated to the version 2.7

Add the next jars to your project:

If you are using Maven, add the dependency:

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.7</version>
</dependency>
Plasticine answered 2/9, 2014 at 3:54 Comment(0)
M
2

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)

Mendymene answered 7/9, 2017 at 14:52 Comment(0)
J
0

If it's maven project, you have to add the below dependency,

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.17.1</version>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.17.1</version>
</dependency>

And the log4j2.xml or log4j2.properties file should be under src/main/resources folder. In that case you don't need to explicitly add folder or jars in classpath. It should do the trick.

Jotunheim answered 25/1, 2022 at 5:19 Comment(0)
A
0

Not Related to this question, but if your are migrating from log4j to log4j2, i suggest on reading my below stackoverflow answer. https://mcmap.net/q/470924/-log4j-migration-to-log4j2

Appertain answered 30/5, 2023 at 10:15 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.