一.导入jar包
要打印日志必须要有log4j包.我这里用的是log4j-1.2.17.jar
二.写 log4j.properties
我这里有一个大致的模板
log4j.rootCategory=ERROR,CONSOLE,LOGFILE
#fatal(致命错误)>error(错误)>warn(警告)>info(普通信息)>debug(调试信息)
log4j.logger.online.wzeal.Mapper.Flowermapper=DEBUG
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{YYYY-MM-DD hh:mm:ss} %C %L %m %n
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=src/Mybatis.log
log4j.appender.LOGFILE.Append=false
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern= %d{YYYY-MM-DD hh:mm:ss} %C %L %m %n
现在我参照模板一步一步说明
1.首先第一行log4j.rootCategory =的意思是设置输出的位置即输出内容的级别。
即ERROR 表示 输出程序运行过程中级别为error和在error以上的信息,
各日志级别对应如下:
fatal(致命错误)>error(错误)>warn(警告)>info(普通信息)>debug(调试信息)
这样我们可以直接通过代码打印日志到控制台
import org.apache.log4j.Logger;
public class test2 {
public static void main(String[] args) {
Logger logger = Logger.getLogger(test2.class);
logger.debug("这是一个调试信息");
logger.info("这是一个普通信息");
}
}
其中方法名对应日志级别
CONSOLE 表示在控制台输出优化后的日志信息
LOGFILE 表示将优化后的日志信息写入文本中
2.接下来 log4j.logger.online.wzeal.Mapper.Flowermapper=DEBUG 表示特定输出运行到online.wzeal.Mapper.Flowermapper时级别为debug的日志信息(这一步很关键,是优化的关键)
3.然后log4j.appender.CONSOLE= 是对输出到控制台的相关信息的设置,我们主要看到
log4j.appender.CONSOLE.layout.ConversionPattern=%d{YYYY-MM-DD hh:mm:ss} %C %L %m %n
这里是设置要输出什么到控制台, %d{YYYY-MM-DD hh:mm:ss} :表示格式为{年-月-日 时-分-秒}日期
%C : 表示使用的类的路径(包名+类名)
%L: 表示第几行
%m:表示输出程序执行信息
%n:表示换行
更多其他设置需要访问官方文档
4.接下来log4j.appender.LOGFILE= 是输入到文本的内容进行限制
其中log4j.appender.LOGFILE.layout.ConversionPattern= %d{YYYY-MM-DD hh:mm:ss} %C %L %m %n
这部分跟以上第3点中差不多的,这里就不再说了。
主要看到log4j.appender.LOGFILE.File=src/Mybatis.log
这个地方设置输入日志的文本文件的存放位置,我这里设置的是在src目录下
(如果该目录下没有文件名为Mybatis.log 的文件,那么当程序运行时会自动新建一个Mybatis.log 文件)
三.日志优化的作用
在说作用之前先看一下日志优化的效果
从效果图中我们可以很清楚的看到软件执行过程中的相关信息,并且过滤了很多不必要的信息
这样我们在开发中可以很清楚的了解软件的运行状况,并且若出错也会非常容易找到错误
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!