這是下面的引數,它們使用的是 log4j2 庫。
status=all
name=PropertiesConfig
#Make sure to change log file path as per your need
property.filename=C:\\logs\\sms.log
filters=threshold
filter.threshold.type=ThresholdFilter
filter.threshold.level=all
appenders=rolling
appender.rolling.type=RollingFile
appender.rolling.name=RollingFile
appender.rolling.fileName=${filename}
appender.rolling.filePattern=C:\\logs\\sms-%d{MM-dd-yyyy}-%i.log
appender.rolling.layout.type=PatternLayout
appender.rolling.layout.pattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
appender.rolling.policies.type=Policies
appender.rolling.policies.time.type=TimeBasedTriggeringPolicy
appender.rolling.policies.time.interval=1
appender.rolling.policies.time.modulate=true
appender.rolling.policies.size.type=SizeBasedTriggeringPolicy
#appender.rolling.policies.size.size=10MB
appender.rolling.strategy.type=DefaultRolloverStrategy
appender.rolling.strategy.max=20
loggers=rolling
logger.rolling.name=com.company.Main
logger.rolling.level=all
logger.rolling.additivity=true
logger.rolling.appenderRef.rolling.ref=RollingFile
和以下代碼寫入日志訊息長達 30 秒。當它達到 30 秒時,行程終止并在日志檔案夾中創建新檔案。我想在這里做的是首先我想在我的 Log4j2 配置屬性檔案中將我的時間限制設定為 30 秒,我這樣做的原因是因為我想在 30 秒后創建一個新檔案并檢查它是否會寫入我的日志那里的訊息。
String s1 = "test";
String s2 = "test";
long start = System.currentTimeMillis();
long end = start 30 * 1000;
while (System.currentTimeMillis() < end) {
LOG.info(s1);
LOG.info(s2);
}
簡而言之,在我的 Log4j2 屬性檔案中,我首先希望我的時間限制為 30 秒,在代碼方面,我希望回圈回圈 2 次。我想檢查當前 30 秒結束時,它會創建一個新檔案并在接下來的 30 秒內將訊息寫入新檔案。
uj5u.com熱心網友回復:
問題在于appender.rolling.filePattern=C:\\logs\\sms-%d{MM-dd-yy-HH-mm-ss}-%i.log .
你給的模式HH-mm-sss里面有。因此,當您再次重新啟動服務/服務器時,會為該時間范圍創建一個新檔案。
如果您想寫信給每天一個檔案,洗掉HH-mm-ss從filePattern和嘗試。
像這樣appender.rolling.filePattern=C:\\logs\\sms-%d{MM-dd-yy}-%i.log。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/366956.html
