spring-bootのwebアプリケーションのLogに一意の識別子を付与したい
4282 ワード
動機
webアプリケーションの運用中等
特定のユーザのリクエストだけgrepして挙動を追跡したいと思ったので。
前提
アプリケーションのlog出力設定済みであることを前提にしています。
詳しく知りたい方は以下を見ていただけると嬉しいです。
spring-boot AOPでメソッドのinとoutをlogに出力する
リポジトリはこちら
どうする?
RequestContextHolderからsessionIdを取得するメソッドを作成します。
LoggingAdvice.java
private String getSessionId() {
return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest().getSession().getId();
}
上記を利用してLogMassageにSessionIdを追加します。
LoggingAdvice.java
private void outputLog(JoinPoint joinPoint) {
String logMessage = "[" + getSessionId() + "]:" + getClassName(joinPoint) + "." + getSignatureName(joinPoint) + ":START:" + getArguments(joinPoint);
logger.info(logMessage);
}
chromeのシークレットモードを使用してリクエスト投げてみてログを確認してみます。
2018-07-11 13:23:05 |http-nio-28080-exec-10| [INFO] com.mijinco0612.springauth0.aspect.LoggingAdvice [CD896FA8A5798E84FBF0CDBDDE90E7FF]:class com.mijinco0612.springauth0.controller.api.v1.DemoController.echoApi:STARTtestEchoMessage
2018-07-11 13:23:05 |http-nio-28080-exec-10| [INFO] com.mijinco0612.springauth0.aspect.LoggingAdvice [CD896FA8A5798E84FBF0CDBDDE90E7FF]:class com.mijinco0612.springauth0.controller.api.v1.DemoController.echoApi:END:pongtestEchoMessage
2018-07-11 13:51:08 |http-nio-28080-exec-4| [INFO] com.mijinco0612.springauth0.aspect.LoggingAdvice [5DC68C4A8DB252AE8DAC87AFB94ABFC7]:class com.mijinco0612.springauth0.controller.api.v1.DemoController.publicApi:START:
2018-07-11 13:51:08 |http-nio-28080-exec-4| [INFO] com.mijinco0612.springauth0.aspect.LoggingAdvice [5DC68C4A8DB252AE8DAC87AFB94ABFC7]:class com.mijinco0612.springauth0.controller.api.v1.DemoController.publicApi:END:public
[CD896FA8A5798E84FBF0CDBDDE90E7FF]
[5DC68C4A8DB252AE8DAC87AFB94ABFC7]
上記2つのSessionIdが確認できました。これらを利用すれば追跡が簡単になりますね。
Author And Source
この問題について(spring-bootのwebアプリケーションのLogに一意の識別子を付与したい), 我々は、より多くの情報をここで見つけました https://qiita.com/mijinco0612/items/7abdbea7e9c213bf7457著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .