`
y806839048
  • 浏览: 1126076 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Java使用Log日志系统(common-logging和log4j)

阅读更多

使用common-logging和log4j

准备开一大项目的话,日志系统必不可少。Apache为了让众多的日志工具有一个相同操作方式,实现了一个通用日志工具包:commons-logging。而Log4j基本上是Java平台上最好的日志组件了。

使用ommons-logging的Log接口,并由commons-logging在运行时决定使用哪种日志架构(如Log4j)。现在,Apache通用日志工具commons-logging和Log4j已经成为Java日志的标准工具。

日志级别

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

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

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

Maven/Jar包

需要使用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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

项目结构

项目结构

配置common-logging.properties文件

只需要一行即可,放在classpath下,如果是Maven中就在src/resources下

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

配置log4j.properties文件

放在classpath下,如果是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 = D:/logs/log.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 = D:/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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

测试

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信息");
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

Intellij IDEA中显示颜色

默认是不显示颜色的,安装一个插件后即可显示:Grep Console

运行结果

运行结果:

运行结果

文件输出:

文件输出

分享到:
评论

相关推荐

    log4j.jar以及common-logging.jar两个jar文件全在这

    本文将深入探讨"log4j.jar"和"commons-logging.jar"这两个在Java编程环境中广泛使用的日志库。 **log4j.jar** `log4j`是Apache软件基金会的一个开源项目,它为Java应用程序提供了一种灵活的日志记录框架。这个框架...

    common-logging库 完整版 jar包 Eclipse

    4. **配置日志实现**:`common-logging`通过查找类路径中的特定文件(如`log4j.properties`或`logging.properties`)来确定使用哪个日志实现。如果没有找到,它会默认使用`java.util.logging`。如果你希望使用其他...

    commons-logging-1.1.3.jar

    common-logging是apache提供的一个通用的日志接口。用户可以自由选择第三方的...使用它的好处就是,代码依赖是common-logging而非log4j, 避免了和具体的日志方案直接耦合,在有必要时,可以更改日志实现的第三方库。

    log4j.jar和common-logging.jar两个都有

    总结来说,`log4j.jar`和`common-logging.jar`在Java开发中分别扮演着日志实现和日志抽象的角色。`log4j.jar`提供了丰富的日志功能和高度可配置性,而`common-logging.jar`则提供了一种通用的日志接口,允许代码与...

    Common-log 和log4j2 配合使用

    在Java领域,`Common-Log`和`log4j2`是两种广泛使用的日志框架。本篇文章将详细介绍如何将它们配合使用,以实现高效、灵活的日志管理。 `Common-Log`,全称为`Apache Commons Logging`,是Apache软件基金会开发的一...

    Log4j与common-logging

    标题中的“Log4j与common-logging”涉及的是两种广泛使用的Java日志框架。Log4j是Apache软件基金会的一个开源项目,它为Java应用程序提供了一种灵活的日志记录机制。而common-logging则是Apache Commons的一个组件,...

    slf4j+logback 于log4j+commons-logging大PK

    今天我们将聚焦两个流行的日志框架——SLF4J(Simple Logging Facade for Java)和Logback,以及它们与Log4j和Commons-Logging的对比。 SLF4J是一个接口层的日志框架,它提供一个统一的API,允许用户在运行时插入...

    common-logging1.1.1jar

    1. **配置日志实现**:通过系统属性(如`java.util.logging.config.file`或`log4j.configuration`)或者在类路径下放置对应的配置文件,指定日志实现及其配置。 2. **获取Log实例**:通过`LogFactory.getLog(Class...

    Apache Commons-logging使用实例

    Apache Commons-logging 提供了一个日志记录接口,允许开发者使用不同的日志实现工具,如 Log4J、Avalon LogKit、JDK 1.4 等。该接口提供了一个简单的日志操作抽象,允许开发者使用不同的日志实现工具。 2. 快速...

    commons-logging-1.2jar工具

    在Java社区中,有多个日志实现,如log4j、java.util.logging(JUL)和Logback等。这些实现各有特点,但它们的API并不兼容,这给开发者在不同日志系统间切换带来了困难。Commons Logging通过提供一个统一的API,使得...

    用maven + spring mvc +JDBCTEMPLATE +由Slf4j实现Common-Logging+Log4j的日志控制(数据库用MySQL)

    本文将探讨如何使用Maven、Spring MVC、JDBCTEMPLATE和日志框架Slf4j实现一个基于MySQL数据库的简单注册功能。首先,我们需要搭建一个开发环境,选用的技术栈包括: 1. **Maven** - 作为项目管理和构建工具,Maven...

    日志框架学习之一:commons-logging+log4j

    标题中的“日志框架学习之一:commons-logging+log4j”揭示了本文将探讨的是在Java开发中常用的两个日志处理工具——Apache Commons Logging和Log4j。这两个框架是日志记录的基础,广泛应用于各种Java应用程序,为...

    commons-logging-1.0.4.zip

    这个库的主要目标是为Java应用程序提供一个简单、统一的接口来使用各种日志框架,如log4j、Java内置的日志API(java.util.logging)或简单的控制台输出。在本文中,我们将深入探讨Commons Logging的核心概念、主要...

    Common Logging的jar包.zip

    Commons Logging通过提供一个抽象层,允许开发者使用简单的API来记录日志,而具体的日志实现(如Log4j、Java Util Logging或SLF4J)可以根据项目需求或者环境配置进行选择和切换。 Commons Logging的核心概念包括...

    commons-logging.jar 版本1.2

    Commons Logging提供了统一的日志接口,使得开发者能够在不修改代码的情况下切换不同的日志实现,如Log4j、java.util.logging(JUL)或Apache Logkit等。这种灵活性使得项目在不同环境下的日志配置更加方便,降低了...

    log4j.properties

    commons-logging-1.2.jar,log4j-1.2.16.jar,三个文件一起组成一个完整的日志输出,Apache的Common Logging只是一个高层的日志框架,本身并没有实现真正的写日志能力,而是依赖其它的日志系统如Log4j或者java本身的...

    log4jappender配置kafka使用的jar包

    在Java日志处理框架Log4j中,Appender是用于定义日志输出目的地的重要组件。当我们需要将日志数据发送到Apache Kafka这种分布式消息系统时,就需要配置一个特定的Appender,即Log4jKafkaAppender。这个Appender允许...

    java企业门户源码-common-logging:.NET的可移植日志抽象

    java企业门户开源Common.Logging .NET 项目构建状态 *注意:由于代码覆盖工具 (NCover) 在我们选择的 CI 服务器平台 (Appveyor) 上的测试运行期间无法可靠地连接到测试运行器的问题,构建可能会定期失败。 工作继续...

    apache-log4j-2.3 核心jar包

    **log4j-api-2.x 和 log4j-core-2.x是必须的,其他包根据需要引入, Common Logging Bridge: log4j-jcl-2.3 Log4j 2是log4j 1.x和logback的改进版,据说采用了一些新技术(无锁异步、等等),使得日志的吞吐量、性能...

Global site tag (gtag.js) - Google Analytics