ความเป็นมา: เนื่องจาก เวอร์ชันเริ่มต้นจาก Spring Boot 1.4 ต้องใช้ log4j2 รูปแบบที่รองรับคือ JSON และ XML การปฏิบัตินี้ส่วนใหญ่ใช้คำอธิบายบันทึกการกำหนดรูปแบบของ XML
Spring Boot 1.5.8. เผยแพร่ขั้นตอนการพัฒนาสำหรับการแนะนำ log4j2 มีดังนี้:
1. ก่อนอื่นไม่รวมการบันทึกสปริง-สตาร์เทอร์-สตาร์เทอร์ด้านล่างแพ็คเกจสปริง-สตาร์สตาร์เทอร์และแพ็คเกจสปริง-สปริง
<การพึ่งพา> <roupId> org.springframework.boot </groupId> <ratifactid> Spring-Boot-Starter-Web </artifactid> <exclusions> </scrusions> </perdency> <! ---https: //mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-log4j2--> <perdency> <Sersion> 1.5.8.Release </เวอร์ชัน> </dependency>
2. ตั้งค่าตำแหน่งทรัพยากรไฟล์ใน POM เพื่อให้ตัวแปรในไฟล์สามารถแก้ไขได้ผ่านคุณสมบัติใน POM
<finmname> $ {project.name} </finalname> <sourcedirectory> src/main/java </sourcedirectory> <testsourcedirectory> src/test/java </testsourcedirectory> <condent> **/*</-dalject> </include> </sursece> </surses> </resources> ตั้งค่าแอตทริบิวต์การเปลี่ยนตัวแปร
<properties> <project.build.sourceencoding> UTF-8 </project.build.sourceencoding> <project.roporting.outputuTencoding> utf-8 </project.reporting.ultputencoding> <java.ersion> 1.8 <log4j2.root.path>/opt/appstack/apache-tomcat/logs/$ {project.name} </log4j2.root.path> <log4j2.error.path>/opt/appstack/apache-tomcat/logs/$ {project.name} <log4j2.package.path>/opt/appstack/apache-tomcat/logs/$ {project.name} -kk </log4j2.package.path> </properties> 3. เนื่องจาก Spring Boot มีเอฟเฟกต์ป้องกันในไฟล์การกำหนดค่า YML หรือคุณสมบัติจำเป็นต้องใช้ปลั๊กอินเพื่อแทนที่ตัวแปรในไฟล์การกำหนดค่า
<pluginmanagement> <plugins> <plugin> <molin> <roupId> org.springframework.boot </groupId> <ratifactid> Spring-Boot-Maven-Plugin </artifactid> </plugin> <! application.yml และ application.properties, placeholder เริ่มต้น $ {... } ได้รับการแก้ไขเป็น @... @-> <!-เพื่อที่จะใช้ตัวแปร maven สำหรับไฟล์ yml และคุณสมบัติของการบูตสปริงเพื่อแทนที่มันคือ $ {} placeolder-> <plugin> <Scoding> UTF-8 </Scoding> <EperEfaultDelImiters> True </usedefaultDelimiters> </nectionuration> </plugin> </plugins> </pluginmanagement>4. ตัวอย่างนี้ใช้การกำหนดค่า YML ของ Spring Boot และกำหนดค่าไฟล์การกำหนดค่า log4j2 ใน application.yml
การบันทึก:
config: classpath: log4j2.xml
หากคุณต้องการกำหนดค่าไฟล์การกำหนดค่า log4j2 ที่แตกต่างกันสำหรับสภาพแวดล้อมที่แตกต่างกันคุณสามารถตั้งค่าค่ากำหนดค่าใน Application.yml ที่เกี่ยวข้อง
5. กำหนดค่าไฟล์กำหนดค่าของ log4j2.xml
<? xml version = "1.0" การเข้ารหัส = "utf-8"?> <สถานะการกำหนดค่า = "เตือน"> <!-พารามิเตอร์ส่วนกลาง-> <properties> <property name = "pattern"> %d {yyyy-mm-dd hh: mm: ss, ss} %5p %c {1} level = "debug"> <appenderref ref = "console"> </appenderref> <appenderref ref = "rolling_file"> </appenderref> </root> <!-เขียน com.kk.springboot.demo ไปที่ไฟล์-> <logger name = ref = "file"> </appenderref> </logger> </logger> <appenders> <console name = "console" target = "system_out" ติดตาม = "true"> <! </patternlayout> </sonsole> <!-upcenders จากแหล่งเดียวกันสามารถกำหนด multiple rollingfiles, การกำหนดบันทึกที่เก็บไว้ตามวัน-> <rollingfile name = "rolling_file" filename = "$ {log4j2.root.path} .log" filePattern = "$ {log4j2.root.path} _%d {yyyy-mm-dd} .log"> <thresholdFilter ระดับ = "ข้อมูล" onMatch = "ยอมรับ" onMismatch = "ปฏิเสธ" interval = "1"/> <!-<sizebasedtriggeringpolicy size = "1 kb"/>-> </policies> </rollingfile> <file name = "ไฟล์" filename = "$ {log4j2.package.path} .log"> <!-<!-<! ->-> <thresholdFilter level = "debug" onMatch = "ยอมรับ" onMismatch = "deny"/> <patternlayout> <matter> $ {pattern} </pattern> </patternlayout> </lies>6. บันทึก log4j2 ใช้ในรหัสโปรแกรม Java
logger logger แบบคงที่ส่วนตัว = loggerFactory.getLogger (userController.class); log.info ("ป้อนใน EntityParam"); ......7. โดยการเปลี่ยนเวลาของระบบบันทึกการทดสอบจะถูกจัดเก็บและกำหนดค่าในชีวิตประจำวัน
ตัวอย่างคำอธิบายด้านบนของไฟล์บันทึกสปริงบูต log4j2 เป็นเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น