首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 互联网 >

Log4j容易使用

2013-09-16 
Log4j简单使用导入commons.logging-1.1.1.jar/log4j-1.2.15.jar包1.编写日志文件log4j.propertieslog4j.ro

Log4j简单使用
导入commons.logging-1.1.1.jar/log4j-1.2.15.jar包
1.编写日志文件log4j.properties

log4j.rootLogger=debug, stdout, R  # Pattern to output the caller's file name and line number.  log4j.appender.stdout=org.apache.log4j.ConsoleAppender  log4j.appender.stdout.layout=org.apache.log4j.PatternLayout  log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n  # Keep one backup file  log4j.appender.R=org.apache.log4j.RollingFileAppender  log4j.appender.R.File=example.log  log4j.appender.R.MaxFileSize= 100KB  log4j.appender.R.MaxBackupIndex=1  log4j.appender.R.layout=org.apache.log4j.PatternLayout  log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n   

2.类中引用
public class MyApp {static Logger logger = Logger.getLogger(MyApp.class.getName());public static void main(String[] args) {//设置配置文件,默认为根目录log4j.propertiesPropertyConfigurator.configure("D:/Workspaces/MyEclipse 8.6/Log4j/src/log.properties");logger.info("info...");        logger.error("error...");        logger.debug("debug...");        logger.warn("warn...");        logger.fatal("fatal...");}}


介绍:
1. 设置root,格式为 log4j.rootLogger=[level],appenderName, ...,其中level就是设置需要输出信息的级别, appenderName就是指定日志信息输出到哪个地方。
2. Log4j提供的appender. Stdout输出方式有以下几种:
  org.apache.log4j.ConsoleAppender(控制台)
  org.apache.log4j.FileAppender(文件)
  org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
  org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生新文件)
  org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
3. 配置日志信息的格式(布局),Log4j提供的layout有以下几种:
  org.apache.log4j.HTMLLayout(以HTML表格形式布局),
  org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
  org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
  org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
4. Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,打印参数如下:
        %m:消息本身
        %p:消息的级别INFO,WARN,ERROR。。。
        %r:从程序开始执行到当前日志产生时的时间间隔(微秒)
        %c:输出当前日志动作所在的category名称。例如:如果category名称是"a.b.c","%c{2}"将会输出"b.c". {2}意谓着输出"以点分隔开的category名称的后两个组件",如果 {n}没有,将会输出整个category名称.
        %t:输出当前线程的名称
        %x:输出和当前线程相关联的NDC,尤其用到像java servlets这样的多客户多线程的应用中。
        %n:输出平台相关的换行符。
        %%:输出一个"%"字符
        %d:输出日志产生时候的日期,当然可以对日期的格式进行定制。例如:%d{HH:mm:ss,SSSS}或者是%d{dd MMM yyyy HH:mm:ss,SSSS},如果没有指定后面的格式,将会输出ISO8601的格式。
        %l:输出位置信息,相当于%C.%M(%F:%L)的组合。
        %C:输出日志消息产生时所在的类名,如果类名是"test.page.Class1"%C{1}表示输出类名"Class1",%C{2}输出"page.Class1",而%C则输出"test.page.Class1"。
        %M:输出日志消息产生时的方法名称
        %F:输出日志消息产生时所在的文件名称
        %L:输出代码中的行号

热点排行