log4j實用配置

2021-07-27 21:49:45 字數 3062 閱讀 5828

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...