새로운 프로젝트를 생성한 후,  slf4j를 사용하여 logging(Logger.info()) 이 출력했는데. 출력되지 않는 경우가 있다. Logging이 안된다면 slf4j-simple을 빌드 dependency에 포함시켰는지 확인한다. 




Logger 출력 클래스


import org.slf4j.Logger;

import org.slf4j.LoggerFactory;


@Controller

@RequestMapping("test")

public class TestController {

  //private static final Logger logger = LoggerFactory.getLogger(TestController.class);

  private final Logger logger = LoggerFactory.getLogger(this.getClass());

  ..

}



log4j.xml

<?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/">


<!-- Appenders -->

<appender name="console" class="org.apache.log4j.ConsoleAppender">

<param name="Target" value="System.out" />

<layout class="org.apache.log4j.PatternLayout">

<param name="ConversionPattern" value="%-5p: %c - %m%n" />

</layout>

</appender>

<!-- Application Loggers -->

    <logger name="com.google.idp.admin">

        <level value="debug" />

    </logger>


<!-- 3rdparty Loggers -->

<logger name="org.springframework">

<level value="debug" />

</logger>


<!-- Root Logger -->

<root>

<priority value="info" />

<appender-ref ref="console" />

</root>

</log4j:configuration>



이럴 때는 pom.xml 파일을 살펴본다.


eclipse(또는 Spring Tool Suite)를 사용하고 있다면, Dependency Hierarchy를 살펴보아서 slf4j-simple이 제대로 포함되어 컴파일되어 있는지 확인해야 한다. 

만약 없다면 pom.xml 파일에 slf4j-simple dependency를 추가한다.


pom.xml


<!-- Logging -->

<dependency>

    <groupId>org.slf4j</groupId>

    <artifactId>slf4j-api</artifactId>

    <version>1.7.5</version>

</dependency>

<dependency>

    <groupId>org.slf4j</groupId>

    <artifactId>slf4j-simple</artifactId>  

    <version>1.7.5</version>

</dependency>

<dependency>

    <groupId>org.slf4j</groupId>

    <artifactId>jcl-over-slf4j</artifactId>

    <version>1.7.5</version>

</dependency>


Posted by '김용환'
,