mybatis+spring的TODO小项目记录(三)使用log4j

1 篇文章 0 订阅
1 篇文章 0 订阅

在上一篇中我们使用maven导入了mybatis、log4j等jar包,在后续数据库操作时会用到mybatis,而mybatis会依赖log4j进行一些日志打印,因此我们首先了解一下log4j。

在之前写程序时,总是习惯使用控制台打印一些调试信息,没用过log4j等日志管理组件,因此并不理解日志管理有什么用。在做TODO项目的学习过程中,明白了日志管理比我之前的方法的优势所在。在控制台打印调试信息时,一般只会打印相应的信息,并不会添加打印时间,并且这些信息没有被保存下来。这样看来,我们就能大体总结一下使用log4j的好处了:

  1. 控制输出目的地:使用print打印时,信息只能输出到控制台中,如果相要写入文件,则需要我们自己进行IO操作,十分繁琐。使用log4j可以自由配置输出的方式,例如追加至某文件或者每天产生一个日志文件。

  2. 控制输出样式:在log4j的配置文件中,我们可以设置日志输出的样式,例如输出打印时间、类名、线程名、行号等额外信息。

  3. 控制输出级别:使用print打印调试信息的一个问题是,如果我们不需要打印或者需要选择打印某些信息时,需要修改的代码就非常多。而在log4j中,按照日志级别排序,会有DEBUG、INFO、WARN、ERROR、FATAL等常见级别,可以设置输出哪些级别的日志,例如当输出级别设置为普通信息INFO,那么INFO以下的级别(DEBUG)便不会输出。

总结以上几点好处,我们可以想象使用log4j之后的场景:首先我们通过配置文件设置输出时间、类名、线程名、行号、信息等,并根据级别不同分别写入不同的日志文件中,如错误日志输出到error.log中,每天生成新的日志文件。使用LOG.debug()代替System.out.println()后,当我们需要调试时,便设置日志输出级别为DEBUG,当不再需要调试时,就可以将日志输出级别调高。

既然log4j能给我们带来那么多方便,那么我们就可以在项目中进行使用。在导入log4j包后,我们需要新建一个名为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 = 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 =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%n

接下来我们就可以写一个测试代码进行日志输出了,下面是我写的测试类:

import org.apache.log4j.Logger;

/**
 * Created by WL on 2017-04-25.
 */
public class LoggerTest {

    private static Logger LOG = Logger.getLogger(LoggerTest.class);

    public static void main(String[] args) {
        LOG.debug("debug");
        LOG.info("info");
        LOG.error("error");
    }
}

下面是控制台的日志输出结果:

19:50:23,446 DEBUG LoggerTest:13 - debug
19:50:23,461  INFO LoggerTest:14 - info
19:50:23,461 ERROR LoggerTest:15 - error

可以看到日志打印时间、日志级别、类名、行号及日志内容均输出到了控制台,十分方便。

有关log4j更多的详细介绍可以在网上搜索或者参考以下链接:
1. Log4j教程
2. 最详细的Log4j使用教程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值