在Ubuntu系統中,Java應用程序的日志輪轉通常是通過log4j、logback或java.util.logging等日志框架來實現的。這里以log4j為例,介紹如何配置日志輪轉。
pom.xml
文件中(如果你使用的是Maven項目):<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
在項目的src/main/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
在這個配置文件中,我們定義了兩個appender:一個是控制臺輸出(stdout),另一個是文件輸出(file)。文件輸出使用了RollingFileAppender
,它會自動輪轉日志文件。MaxFileSize
參數設置了單個日志文件的最大大小,MaxBackupIndex
參數設置了保留的舊日志文件的最大數量。
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
或log4j2.properties
配置文件。