`
843977358
  • 浏览: 245883 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java 标准日志工具 Log4j 的使用

阅读更多

Java 标准日志工具 Log4j 的使用(附源代码)

        源代码下载

        Log4j 是事实上的 Java 标准日志工具。会不会用 Log4j 在一定程度上可以说是衡量一个开发人员是否是一位合格的 Java 程序员的标准。如果你是一名 Java 程序员,如果你还不会用 Log4j,那你真的很有必要读一下这篇文章了。很多朋友反映想写程序日志,但是却不知道怎么把日志写到日志文件里,而且 Java 这方面的资料似乎不多。如《如何写log4j.xml日志配置文件》 所述。本文详细介绍了如何在项目中使用 Log4j 的步骤,并附加了一个例子性质的代码。
        Why Log4j?
        有的朋友喜欢用 System.out.println(String msg); 语句来调试代码。这个确实是一个很好的调试工具。但是随着项目的结束,或者问题的解决,这些语句需要我们一个个地揪出来手工删除?《如何一次性删除所有的system.out.println语句 》,这个帖子里的这位网友就遇到了这样一个问题。
        全部都删除干净,问题又来了:如果以后又出现问题了该怎么办呢?难道再次添加,问题解决后再次查找到删除?
        使用 Log4j 就可以很好地解决上面的问题和矛盾。Log4j 有一个日志级别,用来控制是否进行日志记录。其由低到高的级别如下:
ALL < DEBUG < INFO < WARN < ERROR < FATAL < OFF
        将日志进行分级的目的就是在于可以灵活配置。比如说如果日志级别限定于 DEBUG,那么包括 DEBUG 在内的,INFO、WARN、ERROR、FATAL、OFF 都会进行日志记录;而如果级别定义为 INFO,那么 INFO 以下的级别,像 DEBUG 的日志就不会记录。比如如下代码:

  1. Logger log = LogManager.getLogger(HelloWorld.class);  
  2. log.info("info通过 class 对象来获取 logger 对象");  
  3. log.debug("debug通过 class 对象来获取 logger 对象");  
  4. log.warn("warn通过 class 对象来获取 logger 对象");  

        如果你的 Log4j 定义为输出到控制台,日志级别定义为 INFO,那么执行到上面语句块,控制台会输出以下日志信息:
18:07:37,237 INFOHelloWorld:32 - info通过 class 对象来获取 logger 对象
18:07:37,245 WARNHelloWorld:34 - warn通过 class 对象来获取 logger 对象

        具体范例作者已经上传至附件,有兴趣的朋友可以去下载下来看看。限于时间,例子里仅仅演示了如何将日志信息输出到控制台上。当然,日志也可以输出到文件、 数据库中。作者认为,如果弄清楚了示例代码,对于其他实现聪明的读者完全可以参考 Log4j 的 API 自己搞定。
        How to Log4j?
        第一步:下载 Log4j 工具包
        官方网站地址:http://logging.apache.org/log4j/1.2/index.html。进入后左侧菜单栏里 Documentation 下的 JavaDoc 就是 Log4j 的在线 API 文档。我们点击 Get log4j 1.2 下 的 Download 进入下载页面,最新版本是 1.2.15,点击 apache-log4j-1.2.15.zip 进行下载该文件,解压缩后得到 Log4j 的源代码、示例代码、安装说明和 Log4j 的 jar 包(log4j-1.2.15.jar)。
        第二步:项目中导入 log4j 的 jar 包
        作者开发 IDE 是 eclipse,右击项目名 -> Build Path -> Configure Build Path -> Add External JARS -> 找到你解压缩得到的 log4j-1.2.15.jar 并选中。确定。
        第三步:编辑 log4j.properties 文件,配置你的 Log4j
        在项目的 src 目录下,新建 log4j.properties 文件。通过这个接口对 Log4j 进行配置。
        示例代码中作者的 log4j.properties 配置如下:
  1. ### logger 的配置 ###  
  2. #配置根 logger  
  3. log4j.rootLogger=INFO,stdout  
  4. ### direct log messages to stdout ###(标准的终端输出)  
  5. #控制台输出  
  6. log4j.appender.stdout=org.apache.log4j.ConsoleAppender  
  7. #自定义输出布局  
  8. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout  
  9. #输出的格式  
  10. log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE}%5p%c{1}:%L - %m%n  

        说明:
        “log4j.rootLogger=INFO,stdout”句:定义根 logger 配置项。其语法为:级别,输入终端1,输出终端2,……。stdout 代表日志输出到控制台。
        “log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE}%5p%c{1}:%L - %m%n”语句定义打印格式。打印参数如下:
%m:输出代码中指定的消息。
%p:输出优先级。
%r:输入自应用启动到输出该log信息耗费的毫秒数。
%c:输出所属的类目,通常就是所在类的全名。
%t:输出产生该日志线程的线程名。
%n:输出一个回车换行符。Windows平台为“/r/n”,UNIX为“/n”。
%d:输出日志时间点的日期或时间,默认格式为ISO8601,推荐使用“%d{ABSOLUTE}”,这个输出格式形如:“2007-05-07 18:23:23,500”,符合中国人习惯。
%l:输出日志事件发生的位置,包括类名、线程名,以及所在代码的行数。

        第四步:代码中需要日志记录的地方进行日志代码
        通过 Logger log = LogManager.getLogger(你要进行日志的代码所在的类.class);获取 logger 对象,然后调用其 info、debug 等方法进行日志输出。示例代码如下:
  1. /** 
  2.  * 文件名:HelloWorld.java 
  3.  * 
  4.  * 版本信息: 
  5.  * 日期:2010-1-18 
  6.  * Copyright XXX Corporation 2010 
  7.  * 版权所有 
  8.  * 
  9.  */  
  10. package com.defonds.log4j;  
  11. import org.apache.log4j.LogManager;  
  12. import org.apache.log4j.Logger;  
  13. /** 
  14.  * 
  15.  * 项目名称:TestLog4j 
  16.  * 类名称:HelloWorld 
  17.  * 类描述:Log4j 测试类 
  18.  * 创建人:Defonds 
  19.  * 创建时间:2010-1-18 下午02:58:18 
  20.  * 修改人:Defonds 
  21.  * 修改时间:2010-1-18 下午02:58:18 
  22.  * 修改备注: 
  23.  * @version 
  24.  * 
  25.  */  
  26. public class HelloWorld {  
  27.     public static void main(String[] args) {  
  28.         Logger log = LogManager.getLogger(HelloWorld.class);  
  29.         log.info("info通过 class 对象来获取 logger 对象");  
  30.         log.debug("debug通过 class 对象来获取 logger 对象");  
  31.         log.warn("warn通过 class 对象来获取 logger 对象");  
  32.     }  
  33. }  

        再次说明:本示例只是让没有用过 Log4j 的朋友进行入门级的认识,Log4j 强大的日志记录功能不仅与此。更多 Log4j 的日志功能,还需要读者在项目中自己去切身体会认识。

转载自:http://blog.csdn.net/defonds/article/details/5208891

分享到:
评论

相关推荐

    Java 标准日志工具 Log4j 的使用示例源代码

    《Java 标准日志工具 Log4j 的使用(附源代码)》博客示例源代码。博客链接地址:http://blog.csdn.net/defonds/archive/2010/01/18/5208891.aspx。

    Java 日志工具 Log4j 示例源代码

    Java日志工具Log4j是Java开发者非常熟悉的一个开源日志框架,它为应用程序提供了灵活且高效的日志记录功能。Log4j不仅简单易用,而且功能强大,能够帮助开发者在开发、测试和生产环境中方便地收集和分析日志信息。...

    log4j使用与java中log4j记录日志如何写入数据库

    本文将详细介绍如何在Java中使用Log4j来记录日志,并将其写入数据库。 首先,我们需要了解Log4j的基本结构。一个简单的Log4j项目通常包含以下几个部分: 1. **配置文件**:Log4j的配置文件通常是`log4j.properties...

    java-日志-log4j.7z

    Java日志库Log4j是Java开发者非常熟悉的工具,它为应用程序提供了强大的日志记录功能。Log4j是由Apache软件基金会开发的一个开源项目,广泛应用于各种Java应用中,包括大型企业级系统、Web应用程序和小型服务。这个...

    如何在Java工程中使用Log4j

    Log4j是Apache提供的一个流行的日志记录工具,广泛应用于Java工程中。它可以帮助开发者记录程序的执行过程,方便BUG的追踪和程序的优化。在Java工程中使用Log4j可以提高程序的可读性和可维护性。 下载和配置Log4j ...

    Java 日志管理+log4j

    Java日志管理是Java开发中不可或缺的一部分,它用于记录应用...Log4j作为强大的日志工具,能够满足不同层次的需求,是Java开发者的得力助手。在实际开发中,合理使用和配置日志系统,能有效提升开发效率和产品质量。

    使用log4j2实现日志数据脱敏

    Log4j2作为Java领域广泛使用的日志框架,提供了丰富的功能来满足这一需求。本文将详细介绍如何使用Log4j2实现日志数据脱敏。 一、Log4j2简介 Log4j2是Apache软件基金会开发的日志框架Log4j的升级版,它具有更高的...

    关于开源日志记录工具log4j的使用.txt

    ### 关于开源日志记录工具log4j的使用 #### 原创作者:田超凡,未经许可请勿转发,侵权仿冒必究 在软件开发过程中,日志记录是一项非常重要的功能,它能够帮助开发者更好地理解程序运行时的行为,并在出现问题时...

    kafka_Java_Log4j

    Log4j是Apache的一个开源项目,它为Java应用程序提供了一个强大的日志记录工具。通过配置,你可以选择不同的日志级别(如DEBUG、INFO、WARN、ERROR等),并将日志输出到控制台、文件、SMTP服务器甚至数据库。Log4j还...

    Java 日志记录 log4j 最简明教程

    Java平台提供了多种日志框架,其中log4j是广泛使用的一个,因其灵活性、高效性和易用性而备受青睐。这篇教程将深入浅出地介绍如何使用log4j进行日志记录。 首先,log4j是一个开源的日志记录工具,由Apache软件基金...

    使用Log4j进行日志操作.zip_java 操作日志_java 日志_log4j_系统日志

    Log4j是Java编程语言中广泛使用的日志记录框架...总的来说,Log4j作为Java日志记录的标准工具,因其灵活性、可配置性和强大的功能而备受推崇。了解和熟练掌握Log4j的使用,对任何Java开发者来说都是非常有价值的技能。

    \使用高效的日志工具—log4j详细教程

    Log4J是Apache软件基金会Jakarta项目下的一个子项目,是用 Java编写的优秀日志工具包。通过Log4J可以在不修改代码的情况下,方便、灵活地控制任意粒度的日志信息的开启或关闭,然后使用定制的格式,把日志信息输出到...

    java程序log4j配置

    log4j是一个流行的Java日志记录工具,提供了灵活的日志记录和管理功能。在Java程序中,log4j配置正确是非常重要的,本文将详细介绍log4j配置的各个方面。 一、log4j配置文件 log4j的配置文件通常是log4j....

    非常好用的日志工具log4j

    SLF4J(Simple Logging Facade...总之,SLF4J是Java开发中不可或缺的日志工具,它简化了日志处理的复杂性,提高了代码的可移植性和可维护性。通过使用SLF4J,开发者可以更专注于业务逻辑,而不是日志框架的选择和配置。

    使用高效的日志工具—Log4J

    Log4J是一个高效且功能强大的日志工具,它属于Apache软件基金会Jakarta项目的一部分,主要由Java编写。在编程过程中,日志操作是必不可少的,包括调试信息的记录、运行时的日志跟踪以及审计功能。据统计,日志相关的...

    log4j.rar java写LOG日志的驱动

    Log4j是Apache组织开发的一个开源日志框架,它是Java日志处理领域的经典工具,因其高效、灵活和可扩展性而广受欢迎。 **一、Log4j的基本概念** 1. **Logger(日志器)**:日志的主体,用于创建和管理日志记录。每...

    log4j日志的基本使用

    Log4j是Apache的一个开源项目,被广泛应用于Java应用中作为日志记录工具。它提供了一个简单而强大的日志记录机制,可以帮助开发者高效地追踪程序运行过程中的信息。 #### 二、Log4j核心组件介绍 Log4j的核心组件...

    log4j使用教程(详解)

    总的来说,Log4j作为Java日志记录的重要工具,提供了强大的功能和灵活性,能够满足各种日志需求。理解和熟练使用Log4j,对于提升Java应用的调试和维护效率有着重要作用。在实际项目中,根据需求选择合适的配置和使用...

    Java与log4j2整合mongoDB需要的jar包

    在Java开发过程中,为了实现日志管理,我们通常会使用如log4j2这样的日志框架。Log4j2是一个强大的、灵活的日志系统,它提供了丰富的配置选项和高性能的日志记录能力。当我们的应用程序需要将日志信息存储在数据库中...

    log4j2漏洞检测工具

    Log4j2,一个广泛使用的Java日志框架,最近曝出的重大安全漏洞(CVE-2021-44228,被称为Log4Shell)引起了全球的关注。这个漏洞允许攻击者通过精心构造的日志输入执行远程代码,从而对系统造成严重威胁。为了解决这...

Global site tag (gtag.js) - Google Analytics