วิธีเปิดใช้งานการเข้าสู่ระบบใน org.slf4j สำหรับรุ่น: '2.0.0-alpha1' ใน Spring boot


11

ฉันใช้การบันทึก SLF4J เพื่อพิมพ์บันทึกทั้งหมด ฉันใช้ org.slf4j เวอร์ชันล่าสุด

การใช้งาน 'org.slf4j: slf4j-api: 2.0.0-alpha1'

การใช้งาน 'org.slf4j: log4j-over-slf4j: 2.0.0-alpha1'

แต่ฉันได้รับข้อผิดพลาดต่อไปนี้และไม่มีการพิมพ์บันทึก

SLF4J: No SLF4J providers were found.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#noProviders for further details.
SLF4J: Class path contains SLF4J bindings targeting slf4j-api versions prior to 1.8.
SLF4J: Ignoring binding found at [jar:file:/home/user/.gradle/caches/modules-2/files-2.1/ch.qos.logback/logback-classic/1.2.3/7c4f3c474fb2c041d8028740440937705ebb473a/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#ignoredBindings for an explanation.

บันทึกทำงานได้ดีกับรุ่นเก่ากว่า (1.7.25) มีอะไรที่ต้องเพิ่มหรือกำหนดค่าในโครงการเพื่อให้สามารถพิมพ์บันทึกเหล่านี้ได้


คุณสามารถแชร์ไฟล์ POM ของคุณที่นี่ได้ไหม มันจะช่วยในการทำความเข้าใจว่ามีการใช้การอ้างอิงอะไร
2281204

คำตอบ:


1

มันจะพิมพ์ข้อความที่เพิ่ม slf4j-log4j12 แทน slf4j-api

ลบต่อไปนี้

implementation 'org.slf4j:slf4j-api:2.0.0-alpha1'
implementation 'org.slf4j:log4j-over-slf4j:2.0.0-alpha1'

เพิ่ม

implementation group: 'org.slf4j', name: 'slf4j-log4j12', version: '+'

0

นี่เป็นเพราะ slf4j เป็นสิ่งที่เป็นนามธรรมที่ต้องการเชื่อมโยงกับไลบรารีที่มีอยู่แล้วอื่น ๆ ดังนั้นหากคุณใช้เพียงแค่ slf4j เพื่อพิมพ์บันทึกมันจะไม่ทำงานเพราะจะไม่มีการตั้งค่าระดับการบันทึกเป็นต้น ลิงค์นี้ให้ข้อมูลบางอย่างเหมือนกัน

นอกจากนี้เวอร์ชั่นใหม่ของ Spring Boot มีการรวมกันเป็นค่าเริ่มต้นด้วย slf4j สำหรับรุ่น 1.7.9


0

คุณไม่จำเป็นต้องนำเข้าพึ่งพาบันทึกใด ๆ เมื่อใช้ฤดูใบไม้ผลิ Boot 2.x สิ่งที่จำเป็นต้องมีก็คือการนำเข้าSpring Boot Starterซึ่งคุณน่าจะได้ทำไปแล้ว เช่นspring-boot-starter-webซึ่งขึ้นอยู่กับspring-boot-starter-loggingซึ่งดึงในspring-jclโมดูลที่จำเป็นสำหรับการเข้าสู่ระบบด้วย Spring Framework

เมื่อใช้ starters จะมีการใช้Logbackสำหรับการบันทึกโดยค่าเริ่มต้น Log4j ไม่จำเป็นต้องใช้

เพียงลบการอ้างอิงทั้งหมดออกslf4jจากไฟล์บิลด์ของคุณ นี่คือลักษณะที่อ้างอิงถึงSpring Boot Web Starter ที่ดูเหมือนในไฟล์ build.gradle

compile("org.springframework.boot:spring-boot-starter-web")
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.