搭建一个 log4j 使用环境
最近在搭建一个开发环境的时候使用到了 log4j,所以就记录下使用方法以便以后查阅。
1.引入log4j的相关jar包
jar包的引入非常简单,只需要在pom.xml中加入以下的log4j关联就行。
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.9</version>
</dependency>
2.创建并使用log4j.properties文件
在/WEB-INF/文件夹下创建一个log4j.properties文件,在其中添加如下的内容:
### 设置###
log4j.rootLogger = debug,stdout,D,E
### 输出信息到控制抬 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
### 输出DEBUG 级别以上的日志到 logs/log.log ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = ${webapp.root}/WEB-INF/logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
### 输出ERROR 级别以上的日志到 logs/error.log ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File = ${webapp.root}/WEB-INF/logs/error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m
然后在web.xml中添加以下内容以完成对log4j.properties的调用:
<!-- log4j.properties文件 -->
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</context-param>
<!-- Spring的log4j监听器 -->
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
3.添加log文件,用来保存log信息
在/WEB-INF/logs文件夹下创建log.log文件和error.log文件,那么在log4j.properties中所定义的相关log信息就会被写入到对应的.log文件中。
我在这里被一个问题困扰了好久,就是无论我怎么设置,程序相关的log信息都是能在控制台打印出来的,但是我却怎么也无法在.log文件看到本应该有的相关log信息,所有的.log文件都一直是空的,也就是没有任何信息被写入进去。后来我发现我自己犯了一个愚蠢错误,因为实际上真正在运行的程序是/target文件夹下的,也就是说我应该去/target文件夹下的对应的logs文件夹中查看相应的文件,然不是在/src文件夹下看对应的log文件,之后我去/target文件夹也即是运行程序的文件夹下查看了对应的.log文件,果然日志信息已经被写进去了。
4.测试日志的产生
package com.duoka.test;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* Created on 2015/12/24 22:49.
*/
@Controller
public class Test {
Logger logger = Logger.getLogger(Test.class);
@RequestMapping("/test")
public String test() {
logger.error("start server");
logger.info("asdsd");
logger.debug("asdsadas");
logger.warn("sadasdsad");
return "test";
}
}
书写一个如上的测试程序,发现在控制台和.log文件中均可以可以产生相关的日志文件,log4j的使用环境搭建成功。
关于如何配置 log4j.properties 文件,可以参阅log4j.properties 文件的配置
本文链接:
https://www.nosuchfield.com/2015/12/26/build-a-log4j-use-environment/
版权声明:
本博客所有文章均采用
CC BY-NC-SA 4.0 许可协议,转载请注明出处!