Pengecualian Pembalakan Menggunakan SLF4J

1. Gambaran keseluruhan

Dalam tutorial ringkas ini, kami akan menunjukkan cara log pengecualian di Java menggunakan SLF4J API. Kami akan menggunakan API slf4j-simple sebagai pelaksanaan pembalakan.

Anda boleh meneroka teknik pembalakan yang berbeza dalam salah satu artikel kami sebelumnya.

2. Pergantungan Maven

Pertama, kita perlu menambahkan kebergantungan berikut ke pom.xml kami :

 org.slf4j slf4j-api 1.7.30   org.slf4j slf4j-simple 1.7.30 

Versi terbaru dari perpustakaan ini boleh didapati di Maven Central.

3. Contohnya

Biasanya, semua pengecualian dicatatkan menggunakan kaedah ralat () yang terdapat di kelas Logger . Terdapat beberapa variasi kaedah ini. Kami akan meneroka:

void error(String msg); void error(String format, Object... arguments); void error(String msg, Throwable t);

Mari kita mulakan Logger yang akan kita gunakan:

Logger logger = LoggerFactory.getLogger(NameOfTheClass.class);

Sekiranya kita hanya perlu menunjukkan mesej kesalahan, maka kita boleh menambahkan:

logger.error("An exception occurred!");

Keluaran kod di atas adalah:

ERROR packageName.NameOfTheClass - An exception occurred!

Ini cukup mudah. Tetapi untuk menambahkan maklumat yang lebih relevan mengenai pengecualian (termasuk jejak timbunan) kita dapat menulis:

logger.error("An exception occurred!", new Exception("Custom exception"));

Hasilnya adalah:

ERROR packageName.NameOfTheClass - An exception occurred! java.lang.Exception: Custom exception at packageName.NameOfTheClass.methodName(NameOfTheClass.java:lineNo)

Dengan adanya beberapa parameter, jika argumen terakhir dalam pernyataan pembalakan adalah pengecualian, maka SLF4J akan menganggap bahawa pengguna ingin argumen terakhir diperlakukan sebagai pengecualian dan bukannya parameter sederhana:

logger.error("{}, {}! An exception occurred!", "Hello", "World", new Exception("Custom exception"));

Dalam coretan di atas, mesej String akan diformat berdasarkan perincian objek yang dilalui. Kami telah menggunakan pendakap keriting sebagai penahan tempat untuk parameter String yang diteruskan ke kaedah ini.

Dalam kes ini, outputnya adalah:

ERROR packageName.NameOfTheClass - Hello, World! An exception occurred! java.lang.Exception: Custom exception at packageName.NameOfTheClass.methodName(NameOfTheClass.java:lineNo)

4. Kesimpulan

Dalam tutorial ringkas ini, kami mengetahui cara log pengecualian menggunakan SLF4J API.

Coretan kod boleh didapati di repositori GitHub.