Slf4j-migrator
SLF4J-移行者
Jakarta Commons Logging(JCL)またはlog4jまたはjava.util.logging(JUL)にプロジェクトがあり、これらのプロジェクトをSLF4Jに変換する場合は、SLF4Jディストリビューションで提供される移行ツールを使用して行うことができます。
SLF4J Migratorの実行
SLF4Jは単純な単一のjarファイル(slf4j-migrator.jar)であり、java –jarコマンドを使用して実行できます。
これを実行するには、コマンドプロンプトで、このjarファイルがあるディレクトリを参照し、次のコマンドを実行します。
java -jar slf4j-migrator-1.8.0-beta2.jar
Starting SLF4J Migrator
これにより移行が開始され、スタンドアロンJavaアプリケーションが次のように表示されます-
ウィンドウで指定されているように、実行する移行のタイプを確認し、プロジェクトディレクトリを選択して、[プロジェクトをSLF4Jに移行]ボタンをクリックする必要があります。
このツールは、指定したソースファイルに移動し、インポート行やロガー宣言を現在のロギングフレームワークからSLF4jに変更するなどの簡単な変更を実行します。
例
たとえば、次のように、単一のファイルを持つEclipseのサンプル* log4j(2)*プロジェクトがあるとします-
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に移行するには、ラジオボタン *log4jからslf4j をチェックし、プロジェクトのディレクトリを選択し、 Exit をクリックして移行する必要があります。
移行者は上記のコードを次のように変更しました。 ここでimportおよびloggerステートメントが変更されているのを観察した場合。
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は、Stringタイプ以外のメッセージをサポートしていません。
- MigratorはFATALレベルをサポートしていません。
- log4jでの作業中、migratorはPropertyConfiguratorまたはDomConfiguratorへの呼び出しを移行しません。