Spring MVC でコントローラーからログを記録しようとしていますが、何も表示されません。ログバックでSLF4Jを使用しています。メインクラスからはなんとかログに記録できましたが、Web アプリケーションにした後はログに記録されません。
SL4JF と Logback がクラスパスにあるので、うまくいくと思いました。
@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>