คำถามติดแท็ก slf4j

Simple Logging Facade สำหรับ Java (SLF4J) ทำหน้าที่เป็นส่วนหน้าหรือเลเยอร์นามธรรมอย่างง่ายสำหรับเฟรมเวิร์กการบันทึกต่างๆ โปรดใส่แท็กสำหรับเฟรมเวิร์กการบันทึกจริงที่คุณใช้หากคุณพยายามกำหนดค่าการบันทึกสำหรับแอปพลิเคชันของคุณ

1
เครื่องหมายใน Java Logging framework คืออะไรและมีเหตุผลอะไรที่ต้องใช้?
ครั้งแรกที่ฉันได้ยินเกี่ยวกับเครื่องหมายเมื่ออ่าน: http://slf4j.org/faq.html ฉันตรวจสอบวิธีการที่ใช้ได้สำหรับวัตถุ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 และพบอินเทอร์เฟซ: 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 ข้อมูลเชิงลึกเพิ่มเติมที่ฉันได้รับจาก: http://logback.qos.ch/manual/filters.html แต่ก็ยังสับสน ... โปรดทราบว่าฉันถามว่าทำไมไม่ใช่วิธีใช้ดังนั้นนี่จึงไม่ซ้ำกับ: แนวทางปฏิบัติที่ดีที่สุดสำหรับการใช้ Markers ใน SLF4J / Logback UPDATEดูเหมือนว่าเมื่อคุณใช้เครื่องหมายคุณต้องเขียนโค้ด Java ที่กำหนดเองแทนการกำหนดค่าในไฟล์ XMLหรือ. คุณสมบัติ ... อัปเดต 2จาก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"));
110 java  logging  log4j  slf4j  logback 

5
Logger slf4j ข้อดีของการจัดรูปแบบด้วย {} แทนการต่อสายอักขระ
มีข้อดีของการใช้{}แทนการต่อสตริงหรือไม่? ตัวอย่างจาก slf4j logger.debug("Temperature set to {}. Old temperature was {}.", t, oldT); แทน logger.debug("Temperature set to"+ t + ". Old temperature was " + oldT); ฉันคิดว่ามันเกี่ยวกับการเพิ่มประสิทธิภาพความเร็วเนื่องจากการประเมินพารามิเตอร์ (และการต่อสตริง) สามารถหลีกเลี่ยงได้ในรันไทม์ขึ้นอยู่กับไฟล์กำหนดค่า แต่เป็นไปได้เพียงสองพารามิเตอร์บางครั้งก็ไม่มีทางเลือกอื่นนอกจากการต่อสตริง ต้องการความเห็นเกี่ยวกับปัญหานี้

17
การตั้งค่าระดับบันทึกของข้อความที่รันไทม์ใน slf4j
เมื่อใช้ log4j Logger.log(Priority p, Object message)วิธีนี้จะพร้อมใช้งานและสามารถใช้เพื่อบันทึกข้อความที่ระดับบันทึกที่กำหนดที่รันไทม์ เรากำลังใช้ข้อเท็จจริงนี้และเคล็ดลับนี้เพื่อเปลี่ยนเส้นทาง stderr ไปยังคนตัดไม้ที่ระดับบันทึกเฉพาะ slf4j ไม่มีlog()วิธีการทั่วไปที่ฉันสามารถหาได้ หมายความว่าไม่มีวิธีดำเนินการข้างต้นหรือไม่?
102 java  logging  log4j  slf4j 

1
วิธีบันทึกข้อยกเว้นและข้อความด้วยตัวยึดตำแหน่งด้วย SLF4J
แนวทางที่ถูกต้องในการบันทึกทั้งข้อความแสดงข้อผิดพลาดและข้อยกเว้นโดยใช้SLF4Jคืออะไร? ฉันได้ลองทำสิ่งนี้แล้ว แต่ไม่เคยพิมพ์การติดตามสแต็กข้อยกเว้น: logger.error("Unable to parse data {}", inputMessage, e); ในกรณีนี้ฉันต้องการเติมข้อมูล{}ด้วยinputMessageเช่นเดียวกับการออกจากระบบ stacktrace ข้อยกเว้น วิธีเดียวที่ฉันสามารถทำได้คือทำสิ่งนี้: logger.error("Unable to parse data " + inputMessage, e); ซึ่งไม่สวย
85 java  logging  slf4j 

7
จะส่ง java.util.logging ไปที่ log4j ได้อย่างไร?
ฉันมีแอปพลิเคชันที่มีอยู่ซึ่งทำการบันทึกทั้งหมดกับ log4j เราใช้ไลบรารีอื่น ๆ จำนวนมากที่ใช้ log4j ด้วยหรือล็อกกับ Commons Logging ซึ่งลงท้ายด้วยการใช้ log4j ภายใต้การครอบคลุมในสภาพแวดล้อมของเรา การอ้างอิงอย่างหนึ่งของเรายังบันทึกกับ slf4j ซึ่งทำงานได้ดีเนื่องจากในที่สุดก็มอบหมายให้ log4j เช่นกัน ตอนนี้ฉันต้องการเพิ่ม ehcache ในแอปพลิเคชันนี้สำหรับความต้องการในการแคช ehcache เวอร์ชันก่อนหน้าใช้การบันทึกแบบคอมมอนส์ซึ่งจะทำงานได้อย่างสมบูรณ์ในสถานการณ์นี้ แต่ในเวอร์ชัน 1.6-beta1พวกเขาได้ลบการพึ่งพาการบันทึกแบบคอมมอนส์และแทนที่ด้วย java.util.logging แทน ไม่ค่อยคุ้นเคยกับการบันทึก JDK ในตัวที่มีอยู่ใน java.util.logging มีวิธีง่ายๆในการส่งข้อความบันทึกไปยัง JUL ที่บันทึกกับ log4j หรือไม่ดังนั้นฉันจึงสามารถใช้การกำหนดค่าที่มีอยู่และตั้งค่าสำหรับการบันทึกที่กำลังจะมาถึง จาก ehcache? เมื่อดู javadocs สำหรับ JUL ดูเหมือนว่าฉันสามารถตั้งค่าตัวแปรสภาพแวดล้อมจำนวนมากเพื่อเปลี่ยนLogManagerการใช้งานที่ใช้และอาจใช้เพื่อห่อ log4j Loggers ในLoggerคลาสJUL นี่เป็นแนวทางที่ถูกต้องหรือไม่? น่าขันที่การใช้การบันทึก JDK ในตัวของห้องสมุดจะทำให้ปวดหัวเมื่อ (ส่วนใหญ่) …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.