Spring-Log4Jを使用したロギング

これは、Springアプリケーション内で非常に使いやすいLog4J機能です。次の例では、Log4JとSpringの簡単な統合を説明する簡単な手順を説明します。

私たちはあなたがすでに持っていると仮定します log4Jマシンにインストールされています。お持ちでない場合は、からダウンロードできますhttps://logging.apache.org/zipファイルを任意のフォルダに解凍するだけです。のみ使用しますlog4j-x.y.z.jar 私たちのプロジェクトで。

次に、動作するEclipse IDEを配置し、次の手順を実行して、Spring WebFrameworkを使用して動的フォームベースのWebアプリケーションを開発します。

ステップ 説明
1 SpringExampleという名前のプロジェクトを作成し、の下にパッケージcom.tutorialspointを作成します。src 作成したプロジェクトのフォルダ。
2 Spring Hello Worldの例の章で説明されているように、[外部JARの追加]オプションを使用して必要なSpringライブラリを追加します。
3 [外部JARの追加]を使用して、プロジェクトにlog4jライブラリlog4j-xyzjar追加します。
4 com.tutorialspointパッケージの下にJavaクラスHelloWorldMainAppを作成します。
5 Beans構成ファイルBeans.xmlsrc フォルダ。
6 log4J構成ファイルlog4j.propertiessrc フォルダ。
7 最後のステップは、すべてのJavaファイルとBean構成ファイルのコンテンツを作成し、以下で説明するようにアプリケーションを実行することです。

これがの内容です HelloWorld.java ファイル

package com.tutorialspoint;

public class HelloWorld {
   private String message;
   
   public void setMessage(String message){
      this.message  = message;
   }
   public void getMessage() {
      System.out.println("Your Message : " + message);
   }
}

以下は2番目のファイルの内容です MainApp.java

package com.tutorialspoint;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.apache.log4j.Logger;

public class MainApp {
   static Logger log = Logger.getLogger(MainApp.class.getName());
   
   public static void main(String[] args) {
      ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
      log.info("Going to create HelloWord Obj");
      HelloWorld obj = (HelloWorld) context.getBean("helloWorld");
      obj.getMessage();
      
      log.info("Exiting the program");
   }
}

あなたは生成することができます debug そして error情報メッセージを生成したのと同様の方法でメッセージを送信します。さて、の内容を見てみましょうBeans.xml ファイル

<?xml version = "1.0" encoding = "UTF-8"?>

<beans xmlns = "http://www.springframework.org/schema/beans"
   xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation = "http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

   <bean id = "helloWorld" class = "com.tutorialspoint.HelloWorld">
      <property name = "message" value = "Hello World!"/>
   </bean>

</beans>

以下はの内容です log4j.properties Log4Jがログメッセージを生成するために必要な標準ルールを定義します

# Define the root logger with appender file
log4j.rootLogger = DEBUG, FILE

# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
# Set the name of the file
log4j.appender.FILE.File=C:\\log.out

# Set the immediate flush to true (default)
log4j.appender.FILE.ImmediateFlush=true

# Set the threshold to debug mode
log4j.appender.FILE.Threshold=debug

# Set the append to false, overwrite
log4j.appender.FILE.Append=false

# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n

ソースとBeanの構成ファイルの作成が完了したら、アプリケーションを実行しましょう。アプリケーションに問題がない場合は、Eclipseコンソールに次のメッセージが出力されます-

Your Message : Hello World!

C:\\ドライブを確認すると、ログファイルが見つかります。 log.out 次のようなさまざまなログメッセージがあります-

<!-- initialization log messages -->

Going to create HelloWord Obj
Returning cached instance of singleton bean 'helloWorld'
Exiting the program

Jakarta Commons Logging(JCL)API

または、 Jakarta Commons Logging (JCL)Springアプリケーションでログを生成するためのAPI。JCLはからダウンロードできますhttps://jakarta.apache.org/commons/logging/。このパッケージから技術的に必要な唯一のファイルはcommons-logging-xyzjarファイルです。これは、上記の例でlog4j-xyzjarを配置したのと同様の方法でクラスパスに配置する必要があります。

ロギング機能を使用するには、org.apache.commons.logging.Logオブジェクトが必要です。次に、要件に応じて次のいずれかのメソッドを呼び出すことができます。

  • fatal(オブジェクトメッセージ)
  • エラー(オブジェクトメッセージ)
  • 警告(オブジェクトメッセージ)
  • info(オブジェクトメッセージ)
  • debug(オブジェクトメッセージ)
  • trace(オブジェクトメッセージ)

以下は、JCLAPIを利用するMainApp.javaの置き換えです。

package com.tutorialspoint;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.apache.commons.logging. Log;
import org.apache.commons.logging. LogFactory;

public class MainApp {
   static Log log = LogFactory.getLog(MainApp.class.getName());

   public static void main(String[] args) {
      ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
      log.info("Going to create HelloWord Obj");
      HelloWorld obj = (HelloWorld) context.getBean("helloWorld");
      obj.getMessage();

      log.info("Exiting the program");
   }
}

プログラムをコンパイルして実行する前に、プロジェクトにcommons-logging-xyzjarファイルが含まれていることを確認する必要があります。

上記の例で残りの構成とコンテンツを変更せずに、アプリケーションをコンパイルして実行すると、Log4JAPIを使用した場合と同様の結果が得られます。