画面やAPIでTomcatのアクセスログを出力する
Spring Bootの標準構成ではEmbedded Tomcatで起動しているアプリケーションのアクセスログを標準出力に出すことができません。
アクセスログを標準出力に出せないと(ファイルにしか出せないと) The Twelve-Factor App に従うことができないため、 このページではアクセスログを標準出力に出す方法を説明します。
以下のサンプルコードの動作確認環境については、 動作確認環境と依存ライブラリについて を参照してください。
Tip
アクセスログが出力されないと、サーバ側の処理時間や返却するHTTPステータスコードが分からないため、アクセスログを出力するように構成することをおすすめします。
アクセスログを出力するための設定例
- pom.xml
アクセスログを logback を使用してログ出力するライブラリを追加します。
<dependency> <groupId>dev.akkinoc.spring.boot</groupId> <artifactId>logback-access-spring-boot-starter</artifactId> <version>4.0.0</version> </dependency>
Tip
ログのフォーマットの変更(例えば、ログの可視化用にLTSV形式への変更)などを行う場合には、 logback-access-spring-boot-starter を参考にしてください。
例えば、LTSVでログを出力する場合は下の内容をもつ logback-access.xmlを作成してsrc/main/resources配下に配置します。
<configuration>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>host:%h	time:%t	ident:%l	user:%u	method:%m	uri:%U%q	protocol:%H	status:%s	size:%B	msec:%D	thread:%I</pattern>
</encoder>
</appender>
<appender-ref ref="CONSOLE" />
</configuration>
サンプル全体は tomcat-access-log-sample を参照してください。