Pertama kali saya mendengar tentang penanda ketika membaca:
Saya memeriksa metode yang tersedia untuk objek Logger :
- http://www.slf4j.org/api/org/slf4j/Logger.html
- http://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/Logger.html
dan menemukan antarmuka:
- http://www.slf4j.org/api/org/slf4j/Marker.html
- http://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/Marker.html
Info lebih mendalam saya dapatkan dari:
tapi masih bingung ... Perhatikan bahwa saya bertanya mengapa , bukan bagaimana menggunakannya, jadi ini bukan duplikat dari:
UPDATE Tampaknya ketika Anda menggunakan marker, Anda juga diminta untuk menulis kode Java kustom sebagai gantinya melakukan konfigurasi di file XML atau .property ...
UPDATE 2 Dari http://logback.qos.ch/manual/appenders.html#OnMarkerEvaluator
Marker notifyAdmin = MarkerFactory.getMarker("NOTIFY_ADMIN");
logger.error(notifyAdmin,
"This is a serious an error requiring the admin's attention",
new Exception("Just testing"));
grep
log teks.Jawaban:
Ini adalah versi ulangan jawaban saya atas pertanyaan " Praktik terbaik untuk menggunakan Penanda di SLF4J / Logback ".
Marker dapat digunakan untuk mewarnai atau menandai satu pernyataan log. Apa yang Anda lakukan dengan warna-warna ini, yaitu penanda, sepenuhnya terserah Anda. Namun, dua pola tampaknya umum untuk penggunaan penanda.
Memicu : Beberapa appender dapat diinstruksikan untuk melakukan tindakan di hadapan penanda tertentu. Misalnya,
SMTPAppender
dapat dikonfigurasi untuk mengirim email setiap kali peristiwa logging ditandai denganNOTIFY_ADMIN
penanda terlepas dari tingkat log. Lihat pemicuan berbasis penanda di dokumentasi logback. Anda juga dapat menggabungkan level log dan penanda untuk memicu.Pemfilteran : Penanda sangat berguna untuk menonjolkan pernyataan log berharga tertentu. Misalnya, Anda dapat mewarnai / menandai semua log terkait persistensi Anda (dalam berbagai dan beberapa file kelas) dengan warna "DB". Anda kemudian dapat memfilter "DB": menonaktifkan logging kecuali pernyataan log yang ditandai dengan DB. Lihat bab tentang filter dalam dokumentasi logback untuk informasi lebih lanjut (cari MarkerFilter). Perhatikan bahwa pemfilteran pada penanda dapat dilakukan tidak hanya dengan logback tetapi juga alat analisis log.
Sebelum munculnya Penanda, untuk mencapai perilaku serupa, Anda memiliki opsi 1) menggunakan tingkat khusus 2) menggunakan nama pencatat yang dimodifikasi. SLF4J API saat ini tidak mendukung level kustom. Adapun opsi 2, nama pencatat akhiran (atau awalan) dapat diterapkan jika satu atau dua pencatat perlu dimodifikasi. Pendekatan ini menjadi tidak praktis segera setelah 3 atau lebih penebang harus "disub-klasifikasikan" karena file konfigurasi terkait menjadi tidak dapat diatur.
Meskipun satu penanda sudah sangat berguna, versi SLF4J berikutnya, yaitu versi 2.0, akan memungkinkan beberapa penanda per pernyataan log.
sumber