Logger berasal dari paket log4j sendiri. Jika Anda menggunakan Logger.getLogger, Anda memerlukan paket jar log4j. Dengan cara ini, Anda hanya dapat mengandalkan log4j:
LogFactory berasal dari paket common-logging. Jika Anda menggunakan LogFactory.getLog, Anda dapat mengganti log4j dengan logger apa pun yang mengimplementasikan antarmuka logging umum, dan program tidak akan terpengaruh. Paket logging umum Apache adalah antarmuka logging universal. Melalui lapisan tengah ini, Anda dapat menentukan sistem logging mana yang akan digunakan. Meningkatkan fleksibilitas sistem. Jika log4j tidak ada, commons-logging akan memilih kelas implementasi log lainnya. Hal ini memastikan bahwa file log log4j tidak harus digunakan dalam program.
Alasan peningkatan fleksibilitas:
1) Pertama, cari file konfigurasi Anda sendiri commons-logging.properties di bawah classpath. Jika ditemukan, gunakan kelas implementasi Log yang ditentukan di dalamnya;
2) Jika file commons-logging.properties tidak dapat ditemukan, periksa apakah variabel lingkungan sistem org.apache.commons.logging.Log telah ditentukan. Jika ditemukan, gunakan kelas implementasi Log yang ditentukan olehnya;
3) Jika tidak, periksa apakah ada paket Log4j di classpath. Jika ditemukan, Log4j akan secara otomatis digunakan sebagai kelas implementasi log;
4) Jika tidak, gunakan kelas implementasi log JDK sendiri (kelas implementasi log hanya tersedia setelah JDK1.4);
5) Jika tidak, gunakan kelas implementasi log sederhana SimpleLog yang disediakan oleh commons-logging;
Untuk menyederhanakan konfigurasi commons-logging, file konfigurasi commons-logging umumnya tidak digunakan, dan variabel lingkungan sistem yang terkait dengan commons-logging tidak disetel. Sebaliknya, paket Jar dari Log4j hanya ditempatkan di classpash. Dengan cara ini, integrasi commons-logging dan Log4j diselesaikan dengan sangat sederhana.
Menurut properti yang berbeda, informasi log biasanya dibagi ke dalam tingkatan yang berbeda, dari rendah ke tinggi: "Debug (DEBUG)" "Informasi (INFO)" "Peringatan (PERINGATAN)" "Kesalahan (ERROR)" "Kesalahan Fatal (FATAL) ) ".
Berdasarkan mode operasi common-logging:
Copy kode kodenya sebagai berikut:
organisasi paket;
import org.apache.commons.logging.Log;
import org.apache.log4j.Logger;
Tes kelas publik memperluas TagSupport{
log log statis publik=LogFactory.getLog(Test.class);
uji kekosongan statis publik()
{
log.debug("111");
log.info("125");
log.peringatkan("485");
log.kesalahan("kesalahan");
}
kekosongan statis publik utama(String[] a)
{
Tes tes();
}
}
Metode operasi berdasarkan log4j
Copy kode kodenya sebagai berikut:
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
kelas publik TestLog4j {
logger logger statis = Logger.getLogger(TestLog4j.class);
public static void main(String args[]) {
PropertyConfigurator.configure("log4j.properties");
logger.debug("Ini ada DEBUG");
logger.info("Ini INFOnya");
logger.warn("Ini ada PERINGATAN");
logger.error("Ini ada ERROR");
logger.fatal("Ini beberapa FATAL");
}
}
commons-logging hanya menyediakan lapisan pengemasan untuk Log4j (tentu saja termasuk implementasi LOG lainnya). Output log spesifik masih ditransfer secara internal ke Log4j untuk diproses, dan log4j akan masuk ke direktori kelas secara default untuk menemukan properti log4j. mengajukan.