Spring MVC + Log4jの例
このチュートリアルでは、log4jフレームワークを使用してSpring MVC Webアプリケーションでログを記録する方法を示します。
使用される技術とツール:
-
Log4j 1.2.17
-
春4.1.6。リリース
-
メーベン3
-
トムキャット6
-
Eclipseケプラー4.3
Note
デフォルトでは、Spring(spring-core)はロギングにJCL(commons-logging)を使用しており、JCLには、他のロギングフレームワークを適切に検出するためのランタイム検出アルゴリズムがあります。プロジェクトのクラスパス上の既知の場所。
log4jを統合するために必要なことは、次のとおりです。
-
log4j.jar
をプロジェクトのクラスパスに配置します。 -
プロジェクトのルートクラスパスに
log4j.properties
またはlog4j.xml
ファイルを作成します(Mavenの標準ディレクトリ構造に従う場合、これはresources
フォルダーになります)。
1. プロジェクトディレクトリ
最終的なプロジェクト構造を確認します。
2. プロジェクトの依存関係
次の依存関係を宣言します。
pom.xml
4.1.6.RELEASE 1.2.17 org.springframework spring-webmvc ${spring.version} log4j log4j ${log4j.version}
3. log4j.properties
log4j.properties
ファイルを作成し、resources
に配置します。 フォルダーについては、上記のプロジェクトディレクトリ構造を参照してください。
log4j.properties
# Root logger option log4j.rootLogger=DEBUG, stdout, file # Redirect log messages to console log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n # Redirect log messages to a log file log4j.appender.file=org.apache.log4j.RollingFileAppender #outputs to Tomcat home log4j.appender.file.File=${catalina.home}/logs/myapp.log log4j.appender.file.MaxFileSize=5MB log4j.appender.file.MaxBackupIndex=10 log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
4. Spring MVC Controller +メッセージロギング
ウェルカムページを返すシンプルなコントローラー。 さらに、log4jを使用してロギングを行う方法を示します。
WelcomeController.java
package com.example.common.controller; import org.apache.log4j.Logger; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView; @Controller public class WelcomeController { private static final Logger logger = Logger.getLogger(WelcomeController.class); @RequestMapping(value = "/", method = RequestMethod.GET) public ModelAndView getWelcome() { //logs debug message if(logger.isDebugEnabled()){ logger.debug("getWelcome is executed!"); } //logs exception logger.error("This is Error message", new Exception("Testing")); ModelAndView model = new ModelAndView("welcome"); model.addObject("msg", "Hello Spring MVC + Log4j"); return model; } }
5. Demo
5.1 Download the source code, and run the web app with the embedded Jetty container.
$ mvn jetty:run
5.2 All logging messages will be displayed in the console.
log4j.properties
# Redirect log messages to console log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
桟橋コンソール
2015-06-19 14:10:35 DEBUG WelcomeController:19 - getWelcome is executed! 2015-06-19 14:10:35 ERROR WelcomeController:23 - This is Error message java.lang.Exception: Testing at com.example.common.controller.WelcomeController.getWelcome(WelcomeController.java:23) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606)
ソースコードをダウンロード
ダウンロード–spring-mvc-log4j.zip(5 KB)