在 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 {} \;
请注意,手动删除日志文件可能会导致正在运行的应用程序丢失部分日志信息。因此,建议使用日志框架自动管理日志文件的滚动和清理。