Spring-Boot logging with log4j2? Spring-Boot logging with log4j2? spring spring

Spring-Boot logging with log4j2?


I've a better way:

  1. Exclude logback logger:

    <dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter</artifactId>    <exclusions>        <exclusion>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-logging</artifactId>        </exclusion>    </exclusions></dependency>
  2. Add log4j2 boot starter:

    <dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-log4j2</artifactId></dependency>

Source: http://docs.spring.io/spring-boot/docs/1.5.1.RELEASE/reference/htmlsingle/#howto-configure-log4j-for-logging

Enjoy!


Try this:

  1. Exclude spring-boot-starter-logging e.g.

    <dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter</artifactId>    <exclusions>        <exclusion>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-logging</artifactId>        </exclusion>    </exclusions></dependency>
  2. Add dependencies for your logging interface e.g. slf4j

    <dependency>    <groupId>org.apache.logging.log4j</groupId>    <artifactId>log4j-slf4j-impl</artifactId>    <version>2.0.2</version></dependency>
  3. Add other logging implementations pointing to chosen logging interface e.g.

    <dependency>    <groupId>org.slf4j</groupId>    <artifactId>jcl-over-slf4j</artifactId></dependency><dependency>    <groupId>org.slf4j</groupId>    <artifactId>jul-to-slf4j</artifactId></dependency><dependency>    <groupId>org.slf4j</groupId>    <artifactId>log4j-over-slf4j</artifactId></dependency>
  4. Add your target logging implementation e.g.

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

And it should work.


This is what worked for me. Having two additional exclusions. Else Application was not picking up log4j and was had conflict

Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]

<dependency>    <groupId>org.mybatis.spring.boot</groupId>    <artifactId>mybatis-spring-boot-starter</artifactId>    <version>1.0.0</version>    <exclusions>        <exclusion>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-logging</artifactId>        </exclusion>        <exclusion>            <artifactId>logback-classic</artifactId>            <groupId>ch.qos.logback</groupId>        </exclusion>        <exclusion>            <artifactId>log4j-over-slf4j</artifactId>            <groupId>org.slf4j</groupId>        </exclusion>                </exclusions>           </dependency><dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-log4j2</artifactId></dependency>