在 CentOS 系統中,清理 Java 日志文件的方法取決于你的應用程序是如何存儲日志的。通常,Java 應用程序使用 Log4j、Logback 或 java.util.logging 等日志框架。以下是一些建議:
logback.xml 配置文件中,你可以設置如下屬性:<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/app.log</file>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logs/app-%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
</appender>
在這個例子中,日志文件每天滾動一次,并保留最近 30 天的日志文件。
logging.properties 文件中設置日志文件的滾動策略和最大文件大小。例如:handlers=java.util.logging.FileHandler
java.util.logging.FileHandler.pattern=logs/app.log
java.util.logging.FileHandler.limit=50000
java.util.logging.FileHandler.count=1
java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter
在這個例子中,當日志文件大小達到 50KB 時,將創建一個新的日志文件。最多保留一個日志文件。
rm 命令刪除指定的日志文件,或者使用 find 命令刪除一定時間之前的日志文件。例如,要刪除 /var/log/myapp 目錄下 7 天前的所有日志文件,可以執行以下命令:find /var/log/myapp -type f -name "*.log" -mtime +7 -exec rm {} \;
請注意,手動刪除日志文件可能會導致正在運行的應用程序丟失部分日志信息。因此,建議使用日志框架自動管理日志文件的滾動和清理。