การกำหนดค่าบันทึกเริ่มต้นของ Springboot
SpringBoot อยู่นอกกรอบและให้เฟรมเวิร์กการบันทึกโดยค่าเริ่มต้นโดยใช้ Commons Logging แต่การกำหนดค่าเริ่มต้นยังให้การสนับสนุนสำหรับบันทึกทั่วไปเช่น: การบันทึก Java Util, log4j, log4j2 และ logback แต่ละตัวบันทึกสามารถใช้คอนโซลหรือไฟล์เพื่อเอาต์พุตเนื้อหาบันทึกผ่านการกำหนดค่า
เอาต์พุตคอนโซล
เกี่ยวกับบันทึกการบันทึกระดับระดับบันทึกห้าระดับแรกคือระดับ: จากสูงถึงต่ำ, ERROR , WARN , INFO , DEBUG และ TRACE ระดับที่ต่ำกว่าจะส่งออกข้อมูลระดับสูงและระดับสูงจะไม่ส่งออกข้อมูลระดับต่ำ ตัวอย่างเช่น: หากระดับถูกตั้งค่าเป็น ERROR ข้อมูลของ WARN INFO และ DEBUG จะไม่ถูกส่งออก ใน Springboot, ERROR , WARN และระดับ INFO ได้รับการกำหนดค่าโดยค่าเริ่มต้นไปยังคอนโซล ไม่มีระดับ FATAL ในการเข้าสู่ระบบมันจะถือว่าเป็นระดับ ERROR
เราสามารถเปลี่ยนเป็นระดับการดีบักได้สองวิธี:
application.properties เมื่อคุณสมบัตินี้ถูกตั้งค่าเป็นจริงตัวบันทึกหลัก (รวมถึงคอนเทนเนอร์ฝังตัวไฮเบอร์เนตและสปริง) จะส่งออกเนื้อหามากขึ้น แต่บันทึกที่คุณใช้ด้วยตัวเองจะไม่ส่งออกไปยังระดับการดีบักเอาต์พุตสีสันสดใส
Springboot รองรับเอาต์พุตบันทึกสีตั้งแต่เวอร์ชัน 1.4.0 หากเทอร์มินัลของคุณรองรับ ANSI การตั้งค่าเอาต์พุตสีจะทำให้บันทึกอ่านได้มากขึ้น รองรับโดยการตั้งค่าพารามิเตอร์ spring.output.ansi.enabled ใน application.properties
NEVER : ปิดการใช้งานเอาต์พุตสี ANSI (รายการเริ่มต้น)DETECT : จะตรวจสอบว่าเทอร์มินัลรองรับ ANSI หรือไม่ ถ้าใช่ให้ใช้เอาต์พุตสี (รายการที่แนะนำ)ALWAYS : ใช้รูปแบบสี ANSI เสมอเพื่อส่งออก หากเทอร์มินัลไม่รองรับจะมีข้อมูลการรบกวนมากมาย ไม่แนะนำให้ใช้เอาต์พุตไฟล์
การกำหนดค่าเริ่มต้นของ SpringBoot จะถูกส่งออกไปยังคอนโซลเท่านั้นและจะไม่ถูกบันทึกในไฟล์ แต่เรามักจะต้องบันทึกในไฟล์เมื่อใช้สภาพแวดล้อมการผลิต
ในการเพิ่มเอาต์พุตไฟล์คุณจะต้องกำหนดค่า logging.file หรือ logging.path ใน application.properties . properties
logging.file : ตั้งค่าไฟล์ซึ่งอาจเป็นเส้นทางสัมบูรณ์หรือเส้นทางสัมพัทธ์ ตัวอย่างเช่น: logging.file = my.loglogging.path : การตั้งค่าไดเรกทอรีไฟล์ Spring.log จะถูกสร้างขึ้นภายใต้ไดเรกทอรีนี้และเนื้อหาบันทึกจะถูกเขียนเช่น: logging.path =/var/logไฟล์บันทึกจะถูกตัดทอนที่ขนาด 10MB ส่งผลให้ไฟล์บันทึกใหม่ ระดับเริ่มต้นคือ: ข้อผิดพลาดเตือนข้อมูล
การควบคุมระดับ
ใน Springboot คุณจะต้องกำหนดค่าการควบคุมระดับของการบันทึกการบันทึกใน application.properties Properties
รูปแบบการกำหนดค่า: logging.level.*= ระดับ
logging.level : คำนำหน้าการควบคุมระดับบันทึก * คือชื่อแพ็คเกจหรือชื่อบันทึกLEVEL : ตัวเลือกติดตาม, การดีบัก, ข้อมูล, เตือน, ข้อผิดพลาด, ถึงตาย, ปิด, ปิดตัวอย่างเช่น:
DEBUGWARNการกำหนดค่าบันทึกที่กำหนดเอง
หากคุณไม่ต้องการใช้การกำหนดค่าเริ่มต้นเพียงเพิ่มไฟล์การกำหนดค่าบันทึกของคุณเอง เนื่องจากบริการการบันทึกมักจะเริ่มต้นก่อนที่ ApplicationContext จะถูกสร้างขึ้นจึงไม่จำเป็นต้องควบคุมผ่านไฟล์การกำหนดค่าของ Spring ดังนั้นการควบคุมและการจัดการบันทึกยังสามารถรองรับได้อย่างดีผ่านคุณสมบัติของระบบและไฟล์การกำหนดค่าภายนอกสปริงบูตแบบดั้งเดิม
ขึ้นอยู่กับระบบการบันทึกที่แตกต่างกันคุณสามารถจัดระเบียบชื่อไฟล์การกำหนดค่าตามกฎต่อไปนี้และสามารถโหลดได้อย่างถูกต้อง:
คำแนะนำอย่างเป็นทางการของ Springboot เพื่อใช้ชื่อไฟล์ที่มี -spring เป็นการกำหนดค่าบันทึกของคุณ (เช่นการใช้ logback-spring.xml แทน logback.xml)
รูปแบบผลลัพธ์ที่กำหนดเอง
ใน Springboot คุณสามารถควบคุมรูปแบบเอาต์พุตได้โดยกำหนดค่าพารามิเตอร์ต่อไปนี้ใน application.properties :
logging.pattern.console : กำหนดเอาต์พุตสไตล์ไปยังคอนโซล (ไม่รองรับ JDK Logger)logging.pattern.file : กำหนดรูปแบบของเอาต์พุตไปยังไฟล์ (ไม่รองรับ JDK Logger)รูปแบบเหล่านี้ยังสามารถกำหนดได้โดยตรงในไฟล์การกำหนดค่าบันทึกมากกว่าในไฟล์การกำหนดค่าแอปพลิเคชัน
เทมเพลตไฟล์การกำหนดค่า logback ทั่วไป
<? xml version = "1.0" การเข้ารหัส = "utf-8"?> <การกำหนดค่า> <!-กำหนดที่อยู่ที่เก็บข้อมูลของไฟล์บันทึกและไม่ใช้พา ธ สัมพัทธ์ในการกำหนดค่าของ logback-> <property name = "log_home" value = "d:/logs"/> <! converterclass = "org.springframework.boot.logging.logback.colorConverter"/> <conversionRule conversionword = "wex" converterclass = "org.springframework.boot.logging.logback.whitespacethrowableProxyconvery converterclass = "org.springframework.boot.logging.logback.extendedwhitespacethrowableproxyconverter"/> <!-รูปแบบบันทึกสี-> <property name = "console_log_pattern" value = "$ {console_log_pattern: hh: mm: ss.sss}) {จาง ๆ } %clr ($ {log_level_pattern:- %5p}) %clr ($ {pid:-}) {magenta} %clr (-) {จาง} %clr ([ %15.15t]) %clr (:) {จาง ๆ } %m %n $ {log_exception_conversion_word:- %wex}} "/> <!-การตั้งค่าเอาต์พุตคอนโซล-> <name acpender =" คอนโซล "> <encoder> <! <!-<matter> %d {yyyy-mm-dd hh: mm: ss.sss} [ %thread] %-5level %logger {36}- %msg %n </pattern>-> <mattern> $ {console_log_pattern} </pattern> name = "file"> <RollingPolicy> <!-เอาต์พุตชื่อไฟล์โดยไฟล์บันทึก-> <filenamePattern> $ {log_home} /mixedsys.%D {yyyy-mm-dd} .log </filenamepattern> </rollingpolicy> [ %เธรด] %-5Level %logger {36}- %msg %n </pattern> </coder> </appender> <!-ระดับเอาท์พุทของบันทึกบันทึก (package.class)-> <logger name = "org.springframework.web.servlet.mvc.method.annotation.exception. ref = "console" /> <appender-ref ref = "ไฟล์" /> < /logger> <logger name = "org.springframework.boot" level = "debug" /> <!-ปรับแต่งสำหรับ hibernate sql-> <! name = "org.hibernate.type.descriptor.sql.basicextractor" ระดับ = "debug" /> <logger name = "org.hibernate.sql" ระดับ = "debug" /> <logger name = "org.hibernate.engine name = "org.hibernate.engine.query.hqlQueryPlan" ระดับ = "debug" />-> <!-ระดับเอาต์พุตบันทึก-> <ระดับราก = "ข้อมูล"> <!-ในเวลานี้ข้อมูลระดับการดีบักจะถูกกรอง-> <Appender-ref ref = "console" <!- <appender name = "db"> บันทึกแบบอะซิงโครนัสไปยังฐานข้อมูล <การเชื่อมต่อแหล่งข้อมูล> การเชื่อมต่อพูล <TataSource> <DriverClass> com.mysql.jdbc.driver </driverclass> <url> jdbc: mysql: //127.0.0.0.1: 3306/databasename </dataSource> </connectionsource> </appender> -> </การกำหนดค่า>ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น