java项目 log4j_在应用程序中使用log4j

1、在应用程序中使用log4j

2、把log4j-*.*jar放入CLASSPATH变量中

编辑如下简单java文件:

1

4f1150b881333f12a311ae9ef34da474.pngpackagelogging;24f1150b881333f12a311ae9ef34da474.pngimportorg.apache.log4j.Logger;34f1150b881333f12a311ae9ef34da474.pngimportorg.apache.log4j.PropertyConfigurator;44f1150b881333f12a311ae9ef34da474.png51fa987a29c6482f53d401256f96355eb.png

ca75c07623e1b494fee67e8f316fc310.gifpublicclassTestLog4j9b8a8a44dd1c74ae49c20a7cd451974e.png{6d18c02628675d0a2c816449d98bda930.png7d18c02628675d0a2c816449d98bda930.pngstaticLogger logger=Logger.getLogger(TestLog4j.class);8d18c02628675d0a2c816449d98bda930.png997e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gifpublicstaticvoidmain(String args[])9b8a8a44dd1c74ae49c20a7cd451974e.png{10d18c02628675d0a2c816449d98bda930.png  PropertyConfigurator.configure("log4j.properties");11d18c02628675d0a2c816449d98bda930.png  logger.info("Hello World");12d18c02628675d0a2c816449d98bda930.png  logger.error("Hello World");13d18c02628675d0a2c816449d98bda930.png  logger.warn("Hello World");14d18c02628675d0a2c816449d98bda930.png  logger.debug("Hello World");15ecedf933ec37d714bd4c2545da43add2.png }168f1ba5b45633e9678d1db480c16cae3f.png}174f1150b881333f12a311ae9ef34da474.png184f1150b881333f12a311ae9ef34da474.png

新建一个配置文件log4j.properties:log4j.rootLogger=WARN, 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

# Print the date in ISO 8601 format

log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %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

# Print only messages of level WARN or above in the package com.foo.

log4j.logger.com.foo=WARN

编译并运行TestLog4j会在目录下生成一个example.log的文件,屏幕也会输出信息,这证明已经你已经成功了第一步。

下面解释下这些配置文件

log4j.rootLogger = [ level ], appendName1, appendName2, …appendNameN。同一个记录器可有多个输出端。

PS:level的级别(此级别可以自定义,系统默认提供了以下级别)

debug//调试信息

info//一般信息

warn//警告信息

error//错误信息

fatal//致命错误信息

上面列出的就是所谓log4j的输出级别,log4j建议只使用4个级别,它们从上到下分别为ERROR、WARN、INFO、DEBUG,假设你定义的级别是info,那么error和warn的日志可以显示而比他低的debug信息就不显示了。

log4j.appender.appenderName = fully.qualified.name.of.appender.class。log4j提供了以下几种常用的输出目的地:

org.apache.log4j.ConsoleAppender,将日志信息输出到控制台

org.apache.log4j.FileAppender,将日志信息输出到一个文件

org.apache.log4j.DailyRollingFileAppender,将日志信息输出到一个,并且每天输出到一个新的日志文件

org.apache.log4j.RollingFileAppender,将日志信息输出到一个文件,通过指定文件的的尺寸,当文件大小到达指定尺寸的时候会自动把文件改名,如名为example.log的文件会改名为 example.log.1,同时产生一个新的example.log文件。如果新的文件再次达到指定尺寸,又会自动把文件改名为 example.log.2,同时产生一个example.log文件。依此类推,直到example.log. MaxBackupIndex, MaxBackupIndex的值可在配置文件中定义。

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

org.apache.log4j.jdbc.JDBCAppender,通过JDBC把日志信息输出到数据库中。

Log4j提供了一下几种布局:

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

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

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

定义一个PatternLayout布局的语句为:

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1} - %m%n

PS:ConversionPattern参数的格式含义

格式名 含义

%c 输出日志信息所属的类的全名

%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy-MM-dd HH:mm:ss },输出类似:2002-10-18- 22:10:28

%f 输出日志信息所属的类的类名

%l 输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行

%m 输出代码中指定的信息,如log(message)中的message

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

%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出的,则为DEBUG,依此类推

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

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

另外很好的学习笔记:

http://www.sentom.net/list.asp?id=59

http://www.sentom.net/list.asp?id=60

http://www.sentom.net/list.asp?id=61

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值