使用環境:
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>
留言