美文网首页Log日志
commons-logging && log

commons-logging && log

作者: 我问你瓜保熟吗 | 来源:发表于2018-10-24 15:11 被阅读22次

简介:

Jakarta Commons-logging(JCL)有两个基本的抽象类: Log( 基本记录器 ) 和 LogFactory( 负责创建 Log 实例 ) 。

log4j主要有如下的信息级别:

fatal:非常严重的错误,导致系统中止。期望这类信息能立即显示在状态控制台上。
error:其它运行期错误或不是预期的条件。期望这类信息能立即显示在状态控制台上。
warn:使用了不赞成使用的API、非常拙劣使用API, ‘几乎就是’错误, 其它运行时不合需要和不合预期的状态但还没必要称为 “错误”。期望这类信息能立即显示在状态控制台上。
info:运行时产生的有意义的事件。期望这类信息能立即显示在状态控制台上。
debug:系统流程中的细节信息。期望这类信息仅被写入log文件中。
trace:更加细节的信息。期望这类信息仅被写入log文件中。

通常情况下,我们希望将info级别以上的日志信息输出到控制台,而debug级别以上的信息写入到log文件中,而error信息写入到一个单独的文件中去,下面我们的实例将会实现这样的功能。

需要使用commons-logging.jar和log4j.jar包。如果使用Maven,则需要在pom中添加:

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

配置common-logging.properties文件,maven在src/resources下

org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger

配置log4j.properties文件,maven在src/resources下

### set log levels ###
log4j.rootLogger = debug , stdout , D , E

### 输出到控制台 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
## 输出INFO级别以上的日志
log4j.appender.stdout.Threshold = INFO
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{1}:%L - %m%n

### 输出到日志文件 ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = C:\Users\xieyabo\Temporary\logs\log4j.log
log4j.appender.D.Append = true
## 输出DEBUG级别以上的日志
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

### 保存异常信息到单独文件 ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
## 异常日志文件名
log4j.appender.E.File = C:\Users\xieyabo\Temporary\logs\error.log
log4j.appender.E.Append = true
## 只输出ERROR级别以上的日志!!!
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

测试代码:

package com.zzkun;

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

/**
 * Created by kun on 2016/5/13.
 */
public class LogTest {

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

    public static void main(String[] args) {
        logger.trace("我是trace信息");
        logger.debug("我是debug信息");
        logger.info("我是info信息");
        logger.warn("我是warn信息");
        logger.error("我是error信息");
        logger.fatal("我是fatal信息");
    }
}




详情.png 存储到本地的日志文件.png



运行警告

log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

在main方法下输入以下内容,使用缺省Log4j环境
BasicConfigurator.configure();

相关文章

网友评论

    本文标题:commons-logging && log

    本文链接:https://www.haomeiwen.com/subject/ejqxtqtx.html