首先下载log4j.jar包,去官网下就好了
然后新建一个lg4j.properties文件,用记事本新建然后改名就好,然后配置properties文件
以下面的配置为例
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = log/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|%p|%c|%l|%m%n
org.apache.log4j.DailyRollingFileAppender表示每天产生一个日志文件,file表示日志存储的地址,threshold表示输入到这个日志里的信息的下界,之后会介绍信息的级别,org.apache.log4j.PatternLayout表示可以灵活地指定布局模式,log4j.appender.D.layout.ConversionPattern则指定了输出信息的格式,之后也会指出。
下面来具体了解一下这些配置的具体种类
Log4j提供的appender有以下几种:
org.apache.log4j.ConsoleAppender(输出到控制台)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
Log4j提供的layout有以下几种:
org.apache.log4j.HTMLLayout(以HTML表格形式布局)
org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
打印参数如下:
%m 输出代码中指定的消息
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日22:10:28,921
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。
信息的优先级:
A:off 最高等级,用于关闭所有日志记录。
B:fatal 指出每个严重的错误事件将会导致应用程序的退出。
C:error 指出虽然发生错误事件,但仍然不影响系统的继续运行。
D:warm 表明会出现潜在的错误情形。
E:info 一般和在粗粒度级别上,强调应用程序的运行全程。
F:debug 一般用于细粒度级别上,对调试应用程序非常有帮助。
G:all 最低等级,用于打开所有日志记录。
然后在代码中需要将信息输出到日志中,只需要向下面这样操作:
private static Logger logger = Logger.getLogger(this.class);
logger.info(message);
就可以输出一个info级别的message到日志中,一定要注意,Java自动纠错会提示你所有可以导入的log4j包,但是一定不能乱选不然仍然会报错,提供一下参考我导入的是
import org.apache.log4j.Logger;
然后输出的日志大概形式就如下面这样:
2018-06-10 12:57:14|main|INFO|graph.ConcreteGraph|graph.ConcreteGraph.addEdge(ConcreteGraph.java:143)|边GMFD添加成功
2018-06-10 12:57:14|main|INFO|graph.ConcreteGraph|graph.ConcreteGraph.addEdge(ConcreteGraph.java:143)|边SRMF添加成功