日志框架学习笔记——Log4j、Commons-logging

一、背景

在程序运行时常常会需要观察程序的运行状态,为程序运行的状态做标记,一开始我用System.Out来实现这个功能,然而发现当写的代码变多了的时候用这个方法显得很笨拙,而且要一直在代码中修修改改很不方便。后来发现log4j的设计其实就可以帮我们实现这个功能。于是了解了一下Log4j和Commons-logging。

二、Log4j

Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,邮件、数据库等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。Log4j的功能十分强大,然而在使用它的时候我们只需要引入Log4j的jar包和编写一个log4j.properties 配置文件就可以使用。然而大多数项目都不会直接使用Log4j 而是搭配其他日志接口一起使用比如Commons-logging。

三、Commons-logging

Commons-logging是为所有java日记实现提供一个统一的接口,它自身的日志功能平常弱,所以一般不会单独使用它。很多项目会搭配Log4j一起使用。 提供一个统一的日志接口,简单了操作,同时避免项目与某个日志实现系统紧密耦合很贴心的帮我们自动选择适当的日志实现系统它甚至不需要配置。Commons-logging具体做了什么 推荐看这篇文章:好文推荐

四、如何使用

4.1 添加依赖

(1)如果使用maven,就在pom.xml 添加这些:

        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.16</version>
        </dependency>
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.2</version>
        </dependency>

(2)如果没有使用maven,就去官网下载导入对应的包 ,官网地址

4.2 编写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 级别以上的日志到/Users/jlweng/Desktop/log.log ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = /Users/jlweng/Desktop/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 级别以上的日志到/Users/jlweng/Desktop/error.log ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =/Users/jlweng/Desktop/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

4.3 写个例子

package first;


import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;



public class Log4jTest {

    private static Log logger = LogFactory.getLog(Log4jTest.class);

    public static void main(String[] args) {
        // System.out.println("This is println message.");

        // 记录debug级别的信息
        logger.debug("This is debug message.");
        // 记录info级别的信息
        logger.info("This is info message.");
        // 记录error级别的信息
        logger.error("This is error message.");
    }

}

4.4 运行结果

五、推荐几个讲的比较好的连接

关于Log4j配置文件的详解

Log4j配置文件的两种方式

log4j和common-logging详解讲解

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值