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
例]