คำตอบของฉันขึ้นอยู่กับlogback
ไม่ใช่log4j
(ขออภัยในความสับสน .. )
TimeBasedRollingPolicy
คุณสามารถบรรลุการหมุนบันทึกว่าด้วยการใช้
ตัวอย่างเช่น)
<appender name="SYSTEMLOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>./logs/system.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>./logs/system.log.%d{yyyy-MM-dd}</fileNamePattern>
<!-- keep last 30 days of logs -->
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<charset>UTF-8</charset>
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %msg %n</Pattern>
</encoder>
</appender>
มันจะหมุนเวียนในเวลาเที่ยงคืนและจะลบไฟล์บันทึกเก่ากว่า 30 วัน
fileNamePattern: ช่วงเวลาโรลโอเวอร์ถูกอนุมานจากค่าของ fileNamePattern
maxHistory: คุณสมบัติ maxHistory ซึ่งเป็นตัวเลือกจะควบคุมจำนวนไฟล์เก็บถาวรสูงสุดที่จะจัดเก็บแบบอะซิงโครนัสการลบไฟล์เก่า ตัวอย่างเช่นหากคุณระบุโรลโอเวอร์รายเดือนและตั้งค่า maxHistory เป็น 6 ไฟล์เก็บถาวรที่มีมูลค่า 6 เดือนจะถูกเก็บไว้พร้อมกับไฟล์ที่เก่ากว่า 6 เดือนที่ถูกลบทิ้ง หมายเหตุเมื่อไฟล์บันทึกเก่าที่เก็บถาวรถูกลบออกโฟลเดอร์ใด ๆ ที่สร้างขึ้นเพื่อวัตถุประสงค์ในการเก็บถาวรไฟล์บันทึกจะถูกลบออกตามความเหมาะสม
คุณสามารถตรวจสอบข้อมูลเพิ่มเติมเกี่ยวกับTimeBasedRollingPolicy