2013-04-06 3 views
3

컨트롤러에서 Spring MVC로 로그를 쓰려고하는데 아무 것도 나타나지 않습니다. 나는 로그백과 SLF4J를 사용하고 있습니다. 나는 메인 클래스에서 로그 할 수 있었지만, 웹 어플리케이션을 만든 후에는 로그를 남기지 않았다.Spring MVC에서 로그하는 방법

SL4JF 이후로 Logout이 클래스 패스에 있다고 생각했습니다. 봄은 기본적으로 로깅 자바 커먼즈를 사용하고 있기 때문에

@Controller 
@RequestMapping(value = "/cars") 
public class CarController { 

    private Logger logger = LoggerFactory.getLogger(CarController.class); 

    @RequestMapping(method = RequestMethod.GET) 
    @ResponseBody 
    public Map<String, String> newCar() { 
     logger.info("new car"); 
     // more code 
     return map; 
    } 
} 

logback.xml는

<configuration scan="true"> 
    <property name="LOG_DIR" value="/My/User/Desktop"/> 

    <!--Loggers--> 
    <logger name="my.company" level="DEBUG"/> 

    <!--Root logger--> 
    <root level="debug"> 
     <appender-ref ref="STDOUT"/> 
     <appender-ref ref="FILE_ROLLER"/> 
    </root> 

    <!--Appenders--> 
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
     <encoder> 
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> 
     </encoder> 
    </appender> 

    <appender name="FILE_ROLLER" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
     <file>${LOG_DIR}/mylog.log</file> 
     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
      <fileNamePattern>mylog.%d{yyyy-mm-dd}.log</fileNamePattern> 
      <maxHistory>30</maxHistory> 
     </rollingPolicy> 

     <encoder> 
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> 
     </encoder> 
    </appender> 
</configuration> 
+0

당신이 로깅이 작동하지 않는 곳에서 코드와 logback.xml 파일을 공유 할 수 있습니까? – craftand

+0

@craftand 예, 업데이트했습니다. – LuckyLuke

+0

@LuckyLuke - 여기서 사용한 web.xml 구성은 무엇입니까? 분명히 봄에는 로그백을위한 구성 리스너가 없습니다. – kapad

답변

5

이다. 로깅을 위해 SLF4J를 사용하기 위해 클래스 경로에 jcl-over-slf4j 라이브러리를 넣어야합니다. 받는다는와

, SLF4J + Logback에 추가로 이러한 종속성을 사용

<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-context</artifactId> 
    <version>${spring.version}</version> 
    <exclusions> 
     <!-- Exclude Commons Logging in favor of SLF4j --> 
     <exclusion> 
      <groupId>commons-logging</groupId> 
      <artifactId>commons-logging</artifactId> 
     </exclusion> 
    </exclusions> 
</dependency> 

<dependency> 
    <groupId>org.slf4j</groupId> 
    <artifactId>jcl-over-slf4j</artifactId> 
    <version>${slf4j.version}</version> 
    <scope>runtime</scope> 
</dependency> 

희망이 도움이 :)

+0

오늘 나중에 시도해 보겠습니다. 감사합니다. – LuckyLuke

+0

나는 그것을 작동시킬 수 없습니다. – LuckyLuke

+0

를 logback.xml에 넣어 로그백이 수행중인 작업을 확인하십시오. logger.error()를 사용해 보셨습니까? – jelies

관련 문제