如果在Jakarta Commons Logging(JCL)或log4j
或java.util.logging(JUL)
中有專案,並且您希望將這些專案轉換為SLF4J
,則可以使用SLF4J
發行版中提供的遷移器工具執行此操作。
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("這是一條偵錯紀錄檔資訊.");
log.info("這是一條訊息紀錄檔資訊.");
}
}
要將範例log4j(2)專案遷移到slf4j,需要檢查從log4j到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("這是一條偵錯紀錄檔資訊.");
log.info("這是一條訊息紀錄檔資訊.");
}
}
由於專案中已經有log4j.jar
,因此需要將slf4j-api.jar
和slf4jlog12.jar
檔案新增到專案中以執行它。
SLF4J遷移器有以下局限性。
String
型別以外的訊息。FATAL
級別。PropertyConfigurator
或DomConfigurator
。