`

详细讲解Java中log4j的使用方法【转自www.bitsCN.com】

阅读更多

1、Log4j是什么?

  Log4j可以帮助调试(有时候debug是发挥不了作用的)和分析,要下载和了解更详细的内容,还是访问其官方网站: http://jakarta.apache.org/log4j .

  

2、Log4j的概念

  Log4j中有三个主要的组件,它们分别是 Logger、Appender和Layout,Log4j 允许开发人员定义多个Logger,每个Logger拥有自己的名字,Logger之间通过名字来表明隶属关系。有一个Logger称为Root,它永远存在,且不能通过名字检索或引用,可以通过Logger.getRootLogger()方法获得,其它Logger通过 Logger.getLogger(String name)方法。
  Appender则是用来指明将所有的log信息存放到什么地方,Log4j中支持多种appender,如 console、files、GUI components、NT Event Loggers等,一个Logger可以拥有多个Appender,也就是你既可以将Log信息输出到屏幕,同时存储到一个文件中。
  Layout的作用是控制Log信息的输出方式,也就是格式化输出的信息。

  Log4j中将要输出的Log信息定义了5种级别,依次为DEBUG、INFO、WARN、ERROR和FATAL,当输出时,只有级别高过配置中规定的级别的信息才能真正的输出,这样就很方便的来配置不同情况下要输出的内容,而不需要更改代码。

  

3、Log4j的配置文件

  Log4j支持两种格式的配置文件:XML格式和Java的property格式,比较常用的是用properties配置文件方法,log4j默认的文件名字是log4j.properties,下面先看一个简单的例子,如下:

 

  log4j.rootLogger=debug, stdout, R
  log4j.appender.stdout=org.apache.log4j.ConsoleAppender
  log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

  # Pattern to output the caller's file name and line number.
  log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

  log4j.appender.R=org.apache.log4j.RollingFileAppender
  log4j.appender.R.File=example.log
  log4j.appender.R.MaxFileSize= 100KB

  # Keep one backup file
  log4j.appender.R.MaxBackupIndex=1

  log4j.appender.R.layout=org.apache.log4j.PatternLayout
  log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n


  首先,是设置root,格式为 log4j.rootLogger=[level],appenderName, ……,其中level就是设置需要输出信息的级别,后面是appender的输出的目的地,appenderName就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。 配置日志信息输出目的地Appender,其语法为

 

  log4j.appender.appenderName = fully.qualified.name.of.appender.class
  log4j.appender.appenderName.option1 = value1
  ...
  log4j.appender.appenderName.option = valueN

 Log4j提供的appender有以下几种:

  org.apache.log4j.ConsoleAppender(控制台)

  org.apache.log4j.FileAppender(文件)

  org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)

  org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生新文件)

      org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

 配置日志信息的格式(布局),其语法为:

 

     log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
     log4j.appender.appenderName.layout.option1 = value1
     ....
     log4j.appender.appenderName.layout.option = valueN

 

 Log4j提供的layout有以下几种:

  org.apache.log4j.HTMLLayout(以HTML表格形式布局),

  org.apache.log4j.PatternLayout(可以灵活地指定布局模式),

  org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),

  org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

  Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,打印参数如下:

      %m 输出代码中指定的消息

  %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL 

  %r 输出自应用启动到输出该log信息耗费的毫秒数

  %c 输出所属的类目,通常就是所在类的全名

  %t 输出产生该日志事件的线程名

  %n 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”

  %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:

            %d{yyy MMM dd HH:mm:ss,SSS},输出类似: 2002年10月18日 22:10:28,921

      %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:

           Testlog4.main(TestLog4.java:10)

 

4、Log4j在程序中的使用

  要在自己的程序中使用Log4j,首先需要将commons- logging.jar和logging-log4j-1.2.9.jar导入到构建路径中。然后再将log4j.properties放到src根目录下。这样就可以在程序中使用log4j了。在类中使用log4j,首先声明一个静态变量:

     Logger logger=Logger.getLog("classname");

现在就可以使用了,用法如下:logger.debug("debug message")或者logger.info("info message"),看下面一个小例子:

 


  import com.foo.Bar;
  import org.apache.log4j.Logger;
  import org.apache.log4j.PropertyConfigurator;
  public class MyApp {
    static Logger logger = Logger.getLogger(MyApp.class.getName());
    public static void main(String[] args) {
      // BasicConfigurator replaced with PropertyConfigurator.
      PropertyConfigurator.configure(args[0]);
      logger.info("Entering application.");
      Bar bar = new Bar();
      bar.doIt();
      logger.info("Exiting application.");
    }
  }

【转自www.bitsCN.com

 

 

example:log4j.properties

 

log4j.rootLogger=ERROR, stdout ,logfile

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern= >>>>>>>LOG4J<<<<<<< %r %d [%t] %-p %c %x - #%l# - %m%n

log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=xxx.log
log4j.appender.logfile.MaxFileSize=512KB
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern= >>>>>>>LOG4J<<<<<<< %r %d %p [%c] - %m%n

分享到:
评论

相关推荐

    超级嗅探狗激活码【转自bbs.bitsCN.com】

    为了确保内容的专业性和准确性,下面将详细介绍与该软件相关的知识点。 ### 超级嗅探狗软件简介 超级嗅探狗是一款功能强大的网络数据包捕获工具,主要用于帮助用户在网络环境中进行数据包分析、网络故障排查等工作...

    vncviewer远程控制

    远程控制软件http://www.bitscn.com/tags.php?/vncviewer/ 详细信息远程控制软件http://www.bitscn.com/tags.php?/vncviewer/ 详细信息远程控制软件http://www.bitscn.com/tags.php?/vncviewer/ 详细信息

    可自主定义工具的辅助菜单

    web="C:\Program Files\Internet Explorer\IEXPLORE.EXE" http://www.bitscn.com/ exe= 本程序由Strong编制,技术支持QQ:86055325;本程序仅供自用不含版权问题. 本程序使用方法:name项为按钮名;Web项为所要打开的...

    制作网络拓扑图的好工具Fpinger

    一款适合日常管理的网管软件,能实现基本的监视、定位、检测、追踪等功能。这款软件的最大特点就是可以让我们制作出自己的电子拓扑图,以后,无论是日常管理还是故障定位,只要在电子拓扑图中...【转自bbs.bitsCN.com】

    windows远程桌面连接

    远程桌面连接组件是从windows2000server开始由微软公司提供的,在WINDOWS2000 SERVER中他不是默认安装的。该组件一经推出受到了很多用户的拥护和喜好,所以在WINDOWS XP和2003中微软公司将该...【转自bbs.bitsCN.com】

    emf eclipse

    1. "使用 EMF 进行元建模:生成具体、可重用的 Java 代码片段" 这篇文档可能详细讲解了如何使用EMF的代码生成功能,将元模型转换为可执行的Java代码,实现模型到代码的映射,提高代码的标准化和可维护性。...

    win8.1系统运行GTA4出现R图标闪退的解决方法介绍.docx

    - **下载地址**:[http://.bitsCN.com/os/windows/289850.html](http://.bitsCN.com/os/windows/289850.html) 3. **设置显卡优先级** - **AMD显卡**: - 打开Catalyst Control Center,进入“电源”-&gt;“可切换...

    aptools-win32

    无线网络工具ApTools 文章转载自网管之家:http://www.bitscn.com/network/hack/201006/187180.html

    shell脚本编写和源码

    最后,"Linux网络备份MYSQL【转自bbs.bitsCN.com】.txt"可能是关于MySQL数据库的备份策略,可能详细介绍了如何利用Shell脚本来备份和恢复MySQL数据,这对于数据库管理员来说尤其重要。 总的来说,这个压缩包提供了...

    shell脚本的编写

    **Linux网络备份MYSQL【转自bbs.bitsCN.com】:** 这个文档专门针对MySQL数据库的备份,会介绍如何使用`mysqldump`命令创建数据库的SQL转储文件,以便在需要时恢复数据。 总的来说,Shell脚本编写是一个全面的课题...

    oracle 备份

    _Oracle_中国网管联盟bitsCN.com.URL”和“Linux文库 - 正文 - 如何使用归档日志进行完全恢复.URL”这两篇资源可能进一步探讨了完全恢复的概念,包括在更复杂的情况下,如数据库损坏严重或控制文件丢失时,如何结合...

    Everything-1.2.1.371

    1. Everything简介 Everything是voidtools开发的一款文件搜索工具,官网描述为“基于名称实时定位文件和目录(Locate files and folders by name instantly)”。... 2. Everything三大优点 ...【转自bbs.bitsCN.com】

    Linux phpMyAdmin 安装攻略

    - 本文示例中使用的版本为phpMyAdmin-3.3.4-all-languages.tar.gz。 2. **确保httpd服务正常运行**: - 在安装phpMyAdmin之前,请确保Linux系统的httpd服务(如Apache)可以正常启动和运行。 - 可以通过命令`...

    AD域的建立与图解

     准备工作: bitsCN.Com网管联盟  1.一台装windows server 2003的server  2.一台装windows xp的client  3.用交叉线连起来,并如图分配好ip地址  实验步骤: BBS.bitsCN.com国内最早的网管论坛  1. 配置...

    Cantennator

    This time we bring you the best software to hack the WiFi networks 2010. El compilado incluye potente software en detecci&#243;...文章转载自网管之家:http://www.bitscn.com/network/hack/201006/187180.html

    oracle 性能调整 sql性能优化大全

    `Oracle语句优化53个规则详解 详解 规则 优化 语句 ORACLE SQL 访问 共享 相同 _中国网管联盟-网管网-bitsCN_com.htm`可能列出了53条具体的SQL优化建议,如使用绑定变量、避免在WHERE子句中使用计算表达式等。...

    mysql乱码处理

    具体步骤可以参考链接:[使用提示](http://www.bitscn.com/pdb/php/200701/95558.html)。 #### 六、总结与扩展 通过以上六个步骤,我们可以有效地解决PHP环境下MySQL的UTF-8乱码问题。除了上述方法之外,还可以...

    OicqHack--

    CK 1.2 B时间:2001-12-02 06:14来源:中国网管联盟作者:bitsCN编辑字体:[大 中 小]电脑诊所出品 正式版 1.2 B 使用帮助: From: [10001] To:[10009] 此栏为扫描的 OICQ 号码范围,选中 [V] Scan Mode 即可开启...

    informix学习资料

    它可能是由“中国网管联盟-网管网-bitsCN.com”提供的,这通常是一个技术交流平台,为用户提供实用的技术教程。 2. "informix初始化都做了写什么? - 厦门人家v2008.htm" — 这篇文章可能探讨了Informix数据库的初始...

    linux集群理论基础

    系统 服务器 负载 请求 调度 地址 域名 IP 方法 _中国网管联盟-网管网-bitsCN_com.mht”等资料,我们可以深入了解Linux集群的实现细节,学习如何设计、配置和维护一个高效的Linux集群系统。这些文档涵盖了集群的基础...

Global site tag (gtag.js) - Google Analytics