spring-log4j、width = 353、height = 125

このチュートリアルでは、log4jフレームワークを使用してSpring MVC Webアプリケーションにログインする方法を説明します。

使用される技術とツール:

  1. Log4j 1.2.17

  2. Spring 4.1.6.RELEASE

  3. Maven 3

  4. Tomcat 6

  5. Eclipseケプラー4.3

log4jを統合するには、以下が必要です。

  1. `log4j.jar`をプロジェクトのクラスパスに入れます.

  2. プロジェクトルートに

    log4j.properties`または

    log4j.xml`ファイルを作成します

クラスパス(Mavenの標準ディレクトリ構造に従うなら、これは `resources`フォルダでなければなりません)。

1.プロジェクトディレクトリ

最終的なプロジェクトの構造を見直します。


spring-mvc-log4j、width = 495、height = 413

プロジェクトの依存関係

次の依存関係を宣言します。

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公式ページ


  1. log4j hello worldの例

  2. リンク://logging/log4j-log4j-properties-examples/[log4j.properties

例]