SpringのLoggerを設定したのでまとめる。基本的に公式ドキュメントの26. Loggingに書いてある内容です。

Springはlogback/slf4jでロギングが出きるようになっており、他のロガーも使えますがlogback/slf4jが主流になってきているようなので基本的にこの組み合わせを使っておけば問題ないと思われます。

ついでにLombokのアノテーションを使ってloggerの設定をしてIntellijのLombok Pluginをインストールするところまで書きます。

適当なプロジェクトの作成

SPRING INITIALIZRで適当なプロっジェクトを作る。
ここではdependenciesにWebとLombokを指定する。

ログを取得する設定

debug: trueでdebugログが取得できる。

コマンドラインから指定する以下の場合と同じ動作。

./mvnw springboot-run --debug

rootのロギングレベルから各コンポーネント毎にログレベルを指定することができる。

debug: true
logging:
level:
root: INFO
org:
springframework.web: DEBUG
hibernate: INFO
file: logs/application.log

Lombok

@Slf4jアノテーションをクラスに付けることでprivate static finalなロガーlogが使用可能となる。

例えば以下の様な形。

@Controller
@Slf4j
public class SampleController {
@RequestMapping("/")
@ResponseBody
String root() {
log.info("logger test.");
return "ROOT PAGE";
}
}

@Slf4jアノテーションをつけることで、以下のlogが自動的に追加される。

private static final Logger log = LoggerFactory.getLogger(SampleController.class);

intellij(eclipseでも起きると思われる)の場合logがCannot resolve symbolになってしまうのでLombok Pluginをインストールすること。アノテーションを設定すればいちいちLoggerを各クラスごとに書く必要がなくなるためいい感じ。

おわり。

参考

  1. http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html