在 Spring 中使用 logging
- 先使用 Maven 建立 Spring 專案,參考使用 Maven 建立 Java、Web 和 Spring 專案。
- 使用 log4j
- 於 pom.xml 中加入以下 dependencies,commons-logging 可以不用加,因為在 spring-context 中有用到。
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
<scope>runtime</scope>
</dependency>
- 在 src/main/resources 下加入 log4j.xml。
log4j.rootLogger=DEBUG, A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%n
- commons-logging 程式範例
private Log log = LogFactory.getLog(AppTest.class);
log.debug("...");
- 使用 SLF4J 取代 commons-logging
- SLF4J 不像 commons-logging 是在 runtime 決定 logging framework,而是在 compile 時就決定,所以 SLF4J 的效能比 commons-logging 好。
- 於 pom.xml 中加入以下 dependencies,必須在 spring-context 裡剔除 common-logging,然後加入三個 SLF4J dependencies 和 log4j。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>3.0.5.RELEASE</version>
<scope>runtime</scope>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.6.1</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.1</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.1</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
<scope>runtime</scope>
</dependency>
- 在 src/main/resources 下加入 log4j.xml,同上。
- 一樣是用 commons-logging 介面(來自 jcl-over-slf4j dependency ),程式範例同上。
沒有留言:
張貼留言