JAVA涂鸦
关于JAVA的点点滴滴
posts - 50,  comments - 689,  trackbacks - 0
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格式,本人更喜欢后者,首先看一个简单的例子吧,如下:

  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.");
    }
  }


posted on 2006-01-15 23:32 千山鸟飞绝 阅读(169498) 评论(90)  编辑  收藏 所属分类: Web开发

FeedBack:
# re: 如何使用Log4j?
2007-04-12 20:10 | patriotlml
好文章.
拜一个.  回复  更多评论
  
# 那如何在程序中实现配置log4j呢?
2007-06-06 04:11 | DX
那如何在程序中实现配置log4j呢? 至少有些配置是要在程序中更改的。  回复  更多评论
  
# re: 如何使用Log4j?
2007-09-18 11:49 | A咪
一看就会了 好文章啊 谢谢啦  回复  更多评论
  
# re: 如何使用Log4j?
2007-09-24 14:21 | 网友
狗屎  回复  更多评论
  
# re: 如何使用Log4j?
2007-09-28 13:30 | 黑盒子
非常感谢  回复  更多评论
  
# re: 如何使用Log4j?
2007-10-18 10:34 | jing
翻译的好,有奉献精神,骂人的,哎,鄙视ing  回复  更多评论
  
# re: 如何使用Log4j?
2007-10-26 20:45 | Fine
正找这部分资料,谢谢  回复  更多评论
  
# re: 如何使用Log4j?
2007-11-08 10:57 | heyl
简单明了。谢谢。正是我需要的。  回复  更多评论
  
# re: 如何使用Log4j?[未登录]
2007-12-11 15:00 | Mr.TianShu
log4j:WARN No appenders could be found for logger (org.apache.catalina.startup.Embedded).
log4j:WARN Please initialize the log4j system properly.  回复  更多评论
  
# re: 如何使用Log4j?
2007-12-14 16:08 | maggie
不错!谢谢!  回复  更多评论
  
# re: 如何使用Log4j?[未登录]
2007-12-26 10:31 | XXX
不错,鄙视骂人地  回复  更多评论
  
# re: 如何使用Log4j?
2008-01-28 16:53 | 撒饿饭
支持!!!  回复  更多评论
  
# re: 如何使用Log4j?
2008-02-21 09:58 | timeup
骂人的才是狗屎!!!双手双脚支持LZ!!!  回复  更多评论
  
# re: 如何使用Log4j?
2008-03-11 23:16 | jquery
up....  回复  更多评论
  
# re: 如何使用Log4j?
2008-03-24 17:02 | 十三
十分感谢!  回复  更多评论
  
# re: 如何使用Log4j?[未登录]
2008-03-31 11:31 | Jerry
简单明了  回复  更多评论
  
# re: 如何使用Log4j?
2008-03-31 16:50 | 阿司法
你就是死  回复  更多评论
  
# re: 如何使用Log4j?
2008-04-10 19:36 | wo
up!  回复  更多评论
  
# re: 如何使用Log4j?
2008-04-12 20:34 | 事实
顶一个  回复  更多评论
  
# re: 如何使用Log4j?
2008-04-13 10:07 | 阿哲
不错,简单易懂  回复  更多评论
  
# re: 如何使用Log4j?
2008-04-13 10:38 | 阿哲
顺便说一声,能不能把你的留言信息分一下页,多好的文章,就因为这一点显得稍许逊色  回复  更多评论
  
# re: 如何使用Log4j?
2008-04-26 18:25 | 008
解释还不错
不过那个例子确实垃圾
虎头蛇尾啊,呵呵..  回复  更多评论
  
# re: 如何使用Log4j?
2008-05-09 12:55 | zlk
介绍得有点浅显  回复  更多评论
  
# re: 如何使用Log4j?
2008-05-15 16:30 | 张权
谢谢了,正是我需要的 !  回复  更多评论
  
# re: 如何使用Log4j?
2008-05-22 17:03 | hellokitty007
谢谢分享, 正好需要,学习一下;

鄙视骂人者  回复  更多评论
  
# re: 如何使用Log4j?
2008-05-26 11:31 | wangluo23
好文章,很有帮助,谢谢  回复  更多评论
  
# re: 如何使用Log4j?
2008-06-19 22:10 | 1027
挺好。!!!谢谢了。  回复  更多评论
  
# re: 如何使用Log4j?
2008-06-21 10:52 | sunwei_1002
顶。谢谢!鄙视骂人者。  回复  更多评论
  
# re: 如何使用Log4j?
2008-07-09 15:11 | 麻花疼
射射。
新手上路中
  回复  更多评论
  
# re: 如何使用Log4j?
2008-07-31 22:34 | 拿着砖头拍脑袋
偶没看懂还  回复  更多评论
  
# re: 如何使用Log4j?[未登录]
2008-08-05 23:43 | 小林
不错,刚好用上,谢谢!  回复  更多评论
  
# re: 如何使用Log4j?
2008-08-27 15:42 | 雷博弈
取之有限,用之不竭  回复  更多评论
  
# re: 如何使用Log4j?[未登录]
2008-10-06 16:03 | cc
摘抄的!  回复  更多评论
  
# re: 如何使用Log4j?
2008-10-24 09:26 | BingGo
介绍太简单了,半截,,,,,,  回复  更多评论
  
# re: 如何使用Log4j?
2008-11-28 08:48 | shohokuf
ding!@  回复  更多评论
  
# re: 如何使用Log4j?
2008-11-28 11:17 | sunchuanfu
顶一下!  回复  更多评论
  
# re: 如何使用Log4j?
2008-12-02 16:03 | mat
不错,入门首选!  回复  更多评论
  
# re: 如何使用Log4j?
2008-12-17 15:07 | olduan
thanks  回复  更多评论
  
# re: 如何使用Log4j?
2008-12-19 13:11 | dv
m%是什么  回复  更多评论
  
# re: 如何使用Log4j?
2009-02-18 14:50 | 西侧
简单易懂!谢谢  回复  更多评论
  
# re: 如何使用Log4j?[未登录]
2009-02-25 10:50 | bc
嗯,对我这种菜鸟级别的入门者,非常有帮助!
楼上几位骂人的,可能是觉得内容太简单了,但是没必要骂人呗  回复  更多评论
  
# re: 如何使用Log4j?
2009-04-22 11:36 |
垃圾例子 垃圾解释 这种文章也写 妈的 看不下去了  回复  更多评论
  
# re: 如何使用Log4j?[未登录]
2009-04-29 16:05 | dd
mao dou kan bu dong  回复  更多评论
  
# re: 如何使用Log4j?
2009-06-17 22:51 | geoconst
非常好,浅显易懂,容易上手
搞不懂,居然还有人骂脏话  回复  更多评论
  
# re: 如何使用Log4j?
2009-06-21 14:41 | lycrystal
挺详细的,不错  回复  更多评论
  
# re: 如何使用Log4j?[未登录]
2009-08-31 11:55 | jay
顶一个  回复  更多评论
  
# re: 如何使用Log4j?
2009-09-16 11:17 | ss
不错呀 对初学者而言   回复  更多评论
  
# re: 如何使用Log4j?
2009-09-17 20:16 | 发生的
强烈鄙视骂人者,有狠话讲 就自己写个列子看看  回复  更多评论
  
# re: 如何使用Log4j?
2009-09-28 10:19 |
不尊重别人的劳动成果者。。不要到处咬人  回复  更多评论
  
# re: 如何使用Log4j?
2009-10-28 18:44 | 士大夫
不错 一看就会
  回复  更多评论
  
# re: 如何使用Log4j?[未登录]
2009-11-10 11:54 | hehe
还行,只是应该用log4j.xml  回复  更多评论
  
# re: 如何使用Log4j?
2009-12-05 22:24 | yongcau
拜读,不错  回复  更多评论
  
# re: 如何使用Log4j?[未登录]
2009-12-07 09:22 | dong
k。i。s。s。  回复  更多评论
  
# re: 如何使用Log4j?
2009-12-09 11:05 | hello
为什么楼主喜欢java properties 配置形式呢 为什么不选用XML的配置不是更好么 一般的独立控件配置信息都是用XML配置的 比较正规不是么哈哈 个人意见  回复  更多评论
  
# re: 如何使用Log4j?
2009-12-09 12:00 | 爱爱爱
咱有点素质行不,都多大的孩子了,还骂人,不要影响我们中国人的形象  回复  更多评论
  
# re: 如何使用Log4j?[未登录]
2010-01-20 15:22 | 123
有意思,不过怎么private static final Log log = LogFactory.getLog(JueseDAO.class); 又是什么意思,  回复  更多评论
  
# re: 如何使用Log4j?
2010-06-03 17:31 | kawin
Java技术群:49464487  回复  更多评论
  
# re: 如何使用Log4j?
2010-07-13 17:40 | 游客
顶一下,简单明了  回复  更多评论
  
# re: 如何使用Log4j?
2010-11-26 11:08 | mianhuaman
不错兄弟  回复  更多评论
  
# re: 如何使用Log4j?
2011-01-06 22:16 | ijse
嗯,, 不错, 是翻译官方文档的。  回复  更多评论
  
# re: 如何使用Log4j?[未登录]
2011-02-18 16:05 | 1
谢谢!好文章并不一定多深奥。本来不懂,一看就会了,这就是好文章  回复  更多评论
  
# re: 如何使用Log4j?
2011-06-02 17:29 | hello world
@网友

wo cao ni ma   回复  更多评论
  
# re: 如何使用Log4j?
2011-06-17 14:24 | ankly
up  回复  更多评论
  
# re: 如何使用Log4j?
2011-07-07 17:06 | 你猜
@Mr.TianShu
加上 log4j.properties 文件在src文件夹里。  回复  更多评论
  
# re: 如何使用Log4j?
2011-07-22 16:54 | Biker
所有文件目录结构跟你的一样,但报错:java.io.FileNotFoundException: log4j.properties (系统找不到指定的文件。), arg[0]这个参数该怎么输入,为什么老是说找不到文件。我用摆在磁盘log4j.properties的绝对地址代替,文件内容跟你的一样,没有报错。但是打印
Logger.getRoorLogger().getAllAppenders().hasMoreElements() 总是false,好像没有加载配置文件一样,这是什么情况,蛋疼啊  回复  更多评论
  
# re: 如何使用Log4j?
2011-07-25 09:31 | Biker
@Biker
原来就因为一个字母大写了 我了个汗 弄了好久才找到 新手就是这么悲剧啊
log4j.appender.name= 写成了Log4j.appender.name, 配置里面的log4j的第一个字母l都是小写  回复  更多评论
  
# re: 如何使用Log4j?[未登录]
2011-08-17 14:26 | 土匪
不错````顶下  回复  更多评论
  
# re: 如何使用Log4j?
2011-09-07 16:47 | tmj
好,很好,很强大..  回复  更多评论
  
# re: 如何使用Log4j?
2012-01-16 16:38 | 莉亚那
太感谢了!真的很不错!  回复  更多评论
  
# re: 如何使用Log4j?
2012-02-22 15:58 | apiao
不错!  回复  更多评论
  
# re: 如何使用Log4j?
2012-03-02 13:39 | lhy
学习了,哈哈,请的真清晰。看了一遍貌似理解了,希望能实现出来。嘻嘻,我现在要用log4j实现用户的日志记录,对了这个是我的博客地址:欢迎拍砖:
http://blog.csdn.net/llhhyy1989  回复  更多评论
  
# re: 如何使用Log4j?
2012-04-06 14:32 | 方法
真的不错!  回复  更多评论
  
# re: 如何使用Log4j?
2012-05-30 17:08 | ooxx
@patriotlml
额。。。。。。。。。。。  回复  更多评论
  
# re: 如何使用Log4j?[未登录]
2012-12-05 20:54 | java
@网友
什么玩意,对着这篇文章也乱加!  回复  更多评论
  
# re: 如何使用Log4j?
2013-03-21 17:08 | 3344343
跟百度上的介绍一样。。。。  回复  更多评论
  
# re: 如何使用Log4j?
2013-05-16 16:18 | qqu
非常好,简单易懂。  回复  更多评论
  
# re: 如何使用Log4j?[未登录]
2013-06-02 16:17 | xxx
简单明了  回复  更多评论
  
# re: 如何使用Log4j?
2013-07-23 15:27 | 不二
@patriotlml
牛逼  回复  更多评论
  
# re: 如何使用Log4j?
2013-07-23 15:42 | 不二
@DX
人家在第四条不是写了么  回复  更多评论
  
# re: 如何使用Log4j?
2013-08-12 14:16 | isME
收藏了,嘎嘎  回复  更多评论
  
# re: 如何使用Log4j?[未登录]
2013-10-15 16:06 | 小菜
非常好,简单易懂  回复  更多评论
  
# re: 如何使用Log4j?
2013-12-02 15:10 | 你爸
太差劲了。  回复  更多评论
  
# re: 如何使用Log4j?
2013-12-02 15:11 | 搜索
你行你上啊@你爸
  回复  更多评论
  
# re: 如何使用Log4j?
2014-05-22 17:33 | zuidaima
# re: 如何使用Log4j?[未登录]
2014-06-21 22:45 | java
不错  回复  更多评论
  
# re: 如何使用Log4j?[未登录]
2014-06-21 22:46 | 最代码
log4j的教程不错啊。  回复  更多评论
  
# re: 如何使用Log4j?
2014-08-28 08:30 | 刘晨宏
非常不错!  回复  更多评论
  
# re: 如何使用Log4j?
2014-09-02 15:46 | 心诚则灵
不错,浅显易懂,好文章!  回复  更多评论
  
# re: 如何使用Log4j?
2014-10-31 10:54 | login
谢谢楼主,给新手不少的帮助,  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
 
正在阅读:



<2014年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用链接

留言簿(35)

随笔档案

文章分类

文章档案

好友的blog

我的其他blog

老婆的Blog

搜索

  •  

积分与排名

  • 积分 - 772998
  • 排名 - 56

最新评论

阅读排行榜

评论排行榜