一.导入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 文件)

三.日志优化的作用

在说作用之前先看一下日志优化的效果

从效果图中我们可以很清楚的看到软件执行过程中的相关信息,并且过滤了很多不必要的信息

这样我们在开发中可以很清楚的了解软件的运行状况,并且若出错也会非常容易找到错误



技术      Java Mybatis

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!