在CentOS系统中,Java应用程序的日志轮转通常是通过log4j、logback或java.util.logging等日志框架来实现的。这里以log4j为例,介绍如何配置日志轮转。
<!-- Maven -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
在项目的resources目录下创建一个名为log4j.properties的配置文件。如果已经存在这个文件,请跳到下一步。
编辑log4j.properties文件,添加以下内容:
# 设置日志级别和输出格式
log4j.rootLogger=INFO, stdout, file
# 配置控制台输出
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
# 配置文件输出
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=/var/log/myapp.log
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
在这个配置中,我们设置了日志级别为INFO,输出格式为日期 时间 级别 类名:行号 - 消息。同时,我们配置了两个输出目标:一个是控制台,另一个是文件。文件输出的日志会在达到10MB时自动轮转,并保留最近10个轮转文件。
import org.apache.log4j.Logger;
public class MyApp {
private static final Logger logger = Logger.getLogger(MyApp.class);
public static void main(String[] args) {
logger.info("Hello, world!");
}
}
注意:以上配置适用于log4j 1.x版本。如果你使用的是log4j 2.x版本,配置文件应为log4j2.xml,并且配置内容也有所不同。具体配置方法请参考log4j 2.x官方文档。