ฉันกำลังพยายามใช้ SLF4J (มีlog4j
ผลผูกพัน) เป็นครั้งแรก
ฉันต้องการกำหนดค่า Loggers 3 ชื่อที่แตกต่างกันซึ่งสามารถส่งคืนโดย LoggerFactory ซึ่งจะบันทึกระดับต่าง ๆ และส่งข้อความไปยัง appenders ที่ต่างกัน:
- Logger 1 "FileLogger" บันทึก DEBUG และต่อท้าย
DailyRollingFileAppender
- Logger 2 "TracingLogger" บันทึกการสืบค้นกลับ + และผนวกเข้ากับ
JmsAppender
- Logger 3 "ErrorLogger" จะบันทึก ERROR + และต่อท้ายไปอีกอัน
JmsAppender
นอกจากนี้ฉันต้องการให้พวกเขากำหนดค่าทางการเขียนโปรแกรม (ใน Java, ตรงข้ามกับ XML หรือlog4j.properties
ไฟล์)
ฉันคิดว่าปกติฉันจะกำหนดLogger
บางสิ่งเหล่านี้ในรหัส bootstrapping เช่นinit()
วิธีการ อย่างไรก็ตามเนื่องจากฉันต้องการใช้slf4j-log4j
ฉันสับสนเกี่ยวกับที่ฉันสามารถกำหนด loggers และทำให้พวกเขาสามารถใช้ classpath
ฉันไม่เชื่อว่านี่เป็นการละเมิดวัตถุประสงค์พื้นฐานของ SLF4J (เป็นส่วนหน้า) เนื่องจากโค้ดของฉันที่ใช้ SLF4J API ไม่เคยรู้ว่ามีตัวบันทึกเหล่านี้อยู่ รหัสของฉันทำการเรียกปกติไปยัง SLF4J API ซึ่งส่งต่อไปยัง log4j Loggers ที่พบใน classpath
แต่ฉันจะกำหนดค่า log4j Loggers เหล่านั้นบน classpath ... ใน Java ได้อย่างไร!