AWS APIのログをlog4jで出力する

AWS SDK for Javaとlog4jを使っているのであれば、log4jのプロパティに以下を追記することで出力することが可能です。

# amazonaws
log4j.appender.amazonaws = org.apache.log4j.RollingFileAppender
log4j.appender.amazonaws.MaxFileSize = 1000KB
log4j.appender.amazonaws.MaxBackupIndex = 30
log4j.appender.amazonaws.file = ${catalina.base}/logs/amazonaws.log
log4j.appender.amazonaws.layout = org.apache.log4j.PatternLayout
log4j.appender.amazonaws.layout.conversionPattern =%d <%-5p> (%t) [%F:%L]- %m%n
log4j.appender.amazonaws.append = true

log4j.additivity.com.amazonaws.request =false
log4j.category.com.amazonaws.request = debug, amazonaws

ログレベルをdebugにすることで、リクエストとレスポンスのログが出力され、ログには各リクエストのパラメータやリクエストIDなどが記載されています。

大量のログが出力されるかもしれないので、log4j.additivity.com.amazonaws.requestをfalseにすることで、親のログファイルにはログを出力しないようにしています。