Spring MVC Log4jの例
このチュートリアルでは、log4jフレームワークを使用してSpring MVC Webアプリケーションにログインする方法を説明します。
使用される技術とツール:
-
Log4j 1.2.17
-
Spring 4.1.6.RELEASE
-
Maven 3
-
Tomcat 6
-
Eclipseケプラー4.3
log4jを統合するには、以下が必要です。
-
`log4j.jar`をプロジェクトのクラスパスに入れます.
-
プロジェクトルートに
log4j.properties`または
log4j.xml`ファイルを作成します
クラスパス(Mavenの標準ディレクトリ構造に従うなら、これは `resources`フォルダでなければなりません)。
1.プロジェクトディレクトリ
最終的なプロジェクトの構造を見直します。
プロジェクトの依存関係
次の依存関係を宣言します。
pom.xml
<properties> <spring.version>4.1.6.RELEASE</spring.version> <log4j.version>1.2.17</log4j.version> </properties> <dependencies> <!-- Spring --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <!-- Log4j --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>${log4j.version}</version> </dependency> </dependencies>
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コントローラのメッセージロギング
ウェルカムページを返すシンプルなコントローラ。さらに、log4jを使用してロギングを行う方法を示します。
WelcomeController.java
package com.mkyong.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.デモ
5.1リンクをダウンロードする:#download[ソースコード]、および埋め込まれたJettyコンテナを使ってWebアプリケーションを実行します。
$ mvn jetty:run
5.2すべてのログメッセージがコンソールに表示されます。
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.mkyong.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)
参考文献
リファレンス – log4jを使用する]。
log4j 1.2公式ページ
-
リンク://logging/log4j-log4j-properties-examples/[log4j.properties
例]