SLF4J-移行者

Jakarta Commons Logging(JCL)、log4j、またはjava.util.logging(JUL)にプロジェクトがあり、これらのプロジェクトをSLF4Jに変換する場合は、SLF4Jディストリビューションで提供されている移行ツールを使用して変換できます。

SLF4JMigratorの実行

SLF4Jは単純な単一のjarファイル(slf4j-migrator.jar)であり、java –jarコマンドを使用して実行できます。

これを実行するには、コマンドプロンプトで、このjarファイルがあるディレクトリを参照し、次のコマンドを実行します。

java -jar slf4j-migrator-1.8.0-beta2.jar
Starting SLF4J Migrator

これにより移行が開始され、スタンドアロンのJavaアプリケーションが次のように表示されます。

ウィンドウで指定されているように、実行する移行のタイプを確認し、プロジェクトディレクトリを選択して、[プロジェクトをSLF4Jに移行]ボタンをクリックする必要があります。

このツールは、提供されたソースファイルに移動し、インポート行やロガー宣言を現在のログフレームワークからSLF4jに変更するなどの簡単な変更を実行します。

たとえば、サンプルがあるとしましょう log4j(2) 次のように単一のファイルでEclipseでプロジェクトします-

import org.apache.log4j.Logger;
import java.io.*;
import java.sql.SQLException;
import java.util.*;

public class Sample {
   /* Get actual class name to be printed on */
   static Logger log = Logger.getLogger(Sample.class.getName());

   public static void main(String[] args)throws IOException,SQLException {
      log.debug("Hello this is a debug message");
      log.info("Hello this is an info message");
   }
}

サンプルを移行するには log4j(2) slf4jにプロジェクトし、ラジオボタンをチェックする必要があります from log4j to slf4j プロジェクトのディレクトリを選択して、 Exit 移行します。

移行者は上記のコードを次のように変更しました。ここで、インポートステートメントとロガーステートメントが変更されていることを確認します。

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.*;
import java.sql.SQLException;
import java.util.*;

public class Sample {
   static Logger log = LoggerFactory.getLogger(Sample.class.getName());
   public static void main(String[] args)throws IOException,SQLException {
      log.debug("Hello this is a debug message");
      log.info("Hello this is an info message");
   }
}

あなたはすでに持っているので log4j.jar プロジェクトに追加する必要があります slf4j-api.jar そして slf4jlog12.jar それを実行するためにプロジェクトにファイルします。

SLF4JMigratorの制限

SLF4J移行の制限は次のとおりです。

  • Migratorは、ant、maven、ivyなどのビルドスクリプトを自分で変更する必要はありません。

  • Migratorは、文字列型以外のメッセージをサポートしていません。

  • MigratorはFATALレベルをサポートしていません。

  • log4jの操作中、migratorはPropertyConfiguratorまたはDomConfiguratorへの呼び出しを移行しません。