一:
下载jar包;
链接:http://www.apache.org/dyn/closer.cgi/logging/log4j/1.2.17/log4j-1.2.17.zip
maven依赖:
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
二:
导入JAR包后,在SRC级别下创建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 级别以上的日志文件设置 ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = vincent_player_debug.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 级别以上的日志文件设置 ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File = vincent_player_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%n
注: 如果日志文件没有设置路径的话,那么日志文件会输出到工程目录下。
各个字段简介:
log4j.rootLogger=debug,c (设置日志级别,c是变量,可以有很多)
log4j.appender.c = org.apache.log4j.ConsoleAppender(把日志打印到控制台)
log4j.appender.c.Target = System.out(控制台)
log4j.appender.c.layout = org.apache.log4j.PatternLayout(布局方式—一般就都是这种自由方式布局)
log4j.appender.c.layout.ConversionPattern = [%-5p]%d{yyyy-MM-ddHH:mm:ss,SSS}method:%l%n%m%n(日志打印的内容)
三:测试
package com.vrv.utils;
import org.apache.log4j.Logger;
public class Log4j {
private static Logger logger = Logger.getLogger(Log4j.class);
public static void main(String[] args) throws Exception {
// 记录debug级别的信息
logger.debug("This is debug message.");
// 记录info级别的信息
logger.info("This is info message.");
// 记录error级别的信息
logger.error("This is error message.");
try {
int[] arr = {1, 2, 3};
for (int i = 0; i <= arr.length; i++) {
System.out.println(arr[i]);
}
} catch (Exception e) {
logger.debug("在干什么事情的时间报了什么错误:"+e);
}
}
}
工具类:
package com.vrv.utils;
import java.io.PrintWriter;
import java.io.StringWriter;
/**
* 对于log4j的日志信息进行封装
* @author Administrator
*/
public class Log4j_Utils {
public static String printloginfo(Exception e) {
StringWriter sw=new StringWriter();
e.printStackTrace(new PrintWriter(sw,true));
String str=sw.toString();
return str;
}
}
四:效果
控制台:
[DEBUG] 2019-01-06 10:00:50,596 method:com.vrv.utils.Log4j.main(Log4j.java:21)
在干什么事情的时间报了什么错误:java.lang.ArrayIndexOutOfBoundsException: 3
at com.vrv.utils.Log4j.main(Log4j.java:18)
项目文件目录下;
转换方法,请阅读另外一篇文章:
https://blog.csdn.net/javaprogramme/article/details/80698083