使用環境:
JDK8
Tomcat 9.1
使用log4j2版本:
V2.11.1
Maven dependency
- <dependencies>
- <dependency>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-api</artifactId>
- <version>2.11.1</version>
- </dependency>
- <dependency>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-core</artifactId>
- <version>2.11.1</version>
- </dependency>
- </dependencies>
Configuration
log4j在web application可以使用log4jConfiguration這個context parameter.
另外log4j會去搜尋
1. servlet的context resource,像是web application的root dir,名稱為logging.xml(要有define context resource的location)
2. 如果沒有定義location,log4j會去搜尋WEB-INF這個folder以log4j2的名稱開頭的檔案
3. 一般的搜尋方式是會去class path找,也就是在src的resource目錄放的話,會在target的class path出現。
開始於結束
log4j2會在web application佈署時開始,而在回收時結束。
設定檔範例:
<?xml version="1.0" encoding="utf-8"?> <Configuration status="info"> <Properties> <Property name="logdir">/home/janbodnar/tmp</Property> <Property name="layout">%d [%t] %-5p %c- %m%n</Property> </Properties> <Appenders> <RollingFile name="LOCALHOST" fileName="${logdir}/localhost.log" filePattern="${logdir}/localhost.%d{yyyy-MM-dd}-%i.log"> <PatternLayout pattern="${layout}"/> <Policies> <TimeBasedTriggeringPolicy /> <SizeBasedTriggeringPolicy size="1 MB" /> </Policies> <DefaultRolloverStrategy max="10" /> </RollingFile> </Appenders> <Loggers> <Logger name="com.zetcode" level="info" additivity="false"> <AppenderRef ref="LOCALHOST" /> </Logger> <Root level="error"> </Root> </Loggers> </Configuration>
留言