コンソールに出力されたログを使用して、Spring フレームワーク内の実行フローを確認しようとしていました。目的は、Spring フレームワークの内部動作を少し理解することでした。アプリケーションでログ レベルを ALL に設定しました。次の行がログに出力されます。
2013-07-04 14:46:34 TRACE DispatcherServlet:1018 - Bound request context to thread: org.apache.catalina.connector.RequestFacade@13dd208
2013-07-04 14:46:34 DEBUG DispatcherServlet:823 - DispatcherServlet with name 'web' processing GET request for [/webtemplate/]
2013-07-04 14:46:34 TRACE DispatcherServlet:1088 - Testing handler map [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping@fedfb6] in DispatcherServlet with name 'web'
2013-07-04 14:46:34 DEBUG RequestMappingHandlerMapping:220 - Looking up handler method for path /
2013-07-04 14:46:34 TRACE RequestMappingHandlerMapping:264 - Found 1 matching mapping(s) for [/] : [{[/],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}]
2013-07-04 14:46:34 DEBUG RequestMappingHandlerMapping:227 - Returning handler method [public java.lang.String com.lister.custom.webtemplate.controller.MainController.index(org.springframework.ui.ModelMap)]
2013-07-04 14:46:34 DEBUG DefaultListableBeanFactory:246 - Returning cached instance of singleton bean 'mainController'
2013-07-04 14:46:34 TRACE DispatcherServlet:1122 - Testing handler adapter [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter@771eb1]
すべての行に出力されたソース ファイル(?)と行番号を確認しました。
- ディスパッチャーサーブレット:823
- DispatcherServlet:1018
- RequestMappingHandlerMapping:220
- 等...
内部で何が起こっているかを確認するために。
しかし、ほとんどの場合、それぞれの行番号に関連するコードを見つけることができませんでした。多くの人は、それらの行番号にコメントを付けただけです。
上記のログ行のうち、ログDispatcherServlet:823
を出力した実際のコードのみが含まれていました。
ログ (DEBUG および TRACE) を使用して Spring 内の実行フローを追跡するにはどうすればよいですか?
ノート:
アプリケーションで使用されているバイナリとチェックしているソースの両方のバージョンが同じです - 3.2.3.RELEASE
以下は私のロガーパターンです
log4j.appender.console.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
。