rolling的意思是當滿足一定條件後,就重新命名原日誌檔案用於備份,並從新生成乙個新的日誌檔案。例如需求是每天生成乙個日誌檔案,但是如果一天內的日誌檔案體積已經超過1g,就從新生成,兩個條件滿足乙個即可。這在log4j 1.x原生功能中無法實現,在log4j2中就很簡單了。
配置如下:
<?xml version="1.0" encoding="utf-8"?>
status="warn"
monitorinterval="300">
name="log_home">d://logsproperty>
name="file_name">roll_logproperty>
properties>
name="roll_random"
filename="$/$.log"
filepattern="$/$$/$-%d-%i.log">
pattern="%highlight" />
interval="1" />
size="10 mb" />
policies>
max="20" />
rollingrandomaccessfile>
name="roll_log"
level="trace"
additivity="false">
ref="roll_random" />
logger>
level="error">
ref="console" />
root>
loggers>
configuration>
定義了兩個常量方便後面復用
rollingrandomaccessfile的屬性:
修改測試**,模擬檔案體積超過10m和時間超過1分鐘來驗證結果
public
static
void
main(string args)
try catch (interruptedexception e) {}
logger.trace("trace level");
logger.debug("debug level");
logger.info("info level");
logger.warn("warn level");
logger.error("error level");
logger.fatal("fatal level");
}
需求是把info及以下級別的資訊輸出到info.log,warn和error級別的資訊輸出到error.log,fatal級別輸出到fatal.log,配置檔案如下:
status="warn"
monitorinterval="300">
name="log_home">d://logsproperty>
properties>
name="console"
target="system_out">
pattern="%d [%t] %-5level %logger - %msg%n" />
console>
name="infofile"
filename="$/info.log"
filepattern="$/$$/info-%d-%i.log">
level="warn"
onmatch="deny"
o****match="neutral" />
level="trace"
onmatch="accept"
o****match="deny" />
filters>
pattern="%date %level [%thread][%file:%line] - %msg%n" />
size="10 mb" />
policies>
max="20" />
rollingrandomaccessfile>
name="errorfile"
filename="$/error.log"
filepattern="$/$$/error-%d-%i.log">
level="fatal"
onmatch="deny"
o****match="neutral" />
level="warn"
onmatch="accept"
o****match="deny" />
filters>
pattern="%date %level [%thread][%file:%line] - %msg%n" />
size="10 mb" />
policies>
max="20" />
rollingrandomaccessfile>
name="fatalfile"
filename="$/fatal.log"
filepattern="$/$$/fatal-%d-%i.log">
level="fatal"
onmatch="accept"
o****match="deny" />
filters>
pattern="%date %level [%thread][%file:%line] - %msg%n" />
size="10 mb" />
policies>
max="20" />
rollingrandomaccessfile>
level="trace">
ref="console" />
ref="infofile" />
ref="errorfile" />
ref="fatalfile" />
root>
loggers>
configuration>
測試**:
public
static
void
main(string args)
log4j日誌系統 Log4j
1.1 log4j的三大核心元件 1.2 loggers 記錄器 1.4 layouts 布局 org.apache.log4j.htmllayout 以html 形式布局 org.apache.log4j.patternlayout 可以靈活地指定布局模式 org.apache.log4j.lay...
常用log4j配置
常用log4j配置,一般可以採用兩種方式,properties和.xml,下面舉兩個簡單的例子 一 log4j.properties 設定org.zblog域對應的級別info,debug,warn,error和輸出地a1,a2 log4j.category.org.zblog error,a1 l...
常用log4j配置
常用log4j配置,一般可以採用兩種方式,properties和.xml,下面舉兩個簡單的例子 一 log4j.properties 設定.zblog域對應的級別info,debug,warn,error和輸出地a1,a2 log4j.category.zblog error,a1 log4j.ca...