`

Log4j 入门总结

 
阅读更多

一、Log4j介绍

原文地址:http://marsvaadin.iteye.com/blog/1362623

log4j是类似于java.util.logging的日志作用,即记录一些有用信息,是一个日志框架;

log4j == log for Java

日志框架的作用:

(1)函数参数是否正确;

(2)软件发布后,记录用户的每一步操作;

(3)记录程序运行出错位置;

log4j在http://logging.apache.org/log4j/1.2/download.html  中进行下载;

log4j的api文档在log4j/site/apidocs/index.html中;

log4j可以改变日志记录的形式比如HTML、Simple等;

log4j可以改变日志输出的目的地,比如File、DB等;

 

二、配置使用Log4j

 

原本是一个zip包,取出jar包,并在Eclipse的某个Project build path导入;

 

三、简单的使用Log4j

 

log4j需要配置文件log4j.properties进行配置,log4j.properties位于src目录 下;

 

log4j.properties规则:

(1)键值对;

(2)#代表注释;

(3)不支持中文;

 

Log4jDemo.java

 

Java代码 复制代码 收藏代码
  1. package org.impl;   
  2.   
  3. import org.apache.log4j.Logger;   
  4.   
  5. public class Log4jDemo {   
  6.     public static void main(String args[]){   
  7.         Logger logger = Logger.getLogger(org.impl.Log4jDemo.class);   
  8.         logger.debug("debug");   
  9.         logger.info("info");   
  10.         logger.error("error");   
  11.     }   
  12. }  
package org.impl;

import org.apache.log4j.Logger;

public class Log4jDemo {
	public static void main(String args[]){
		Logger logger = Logger.getLogger(org.impl.Log4jDemo.class);
		logger.debug("debug");
		logger.info("info");
		logger.error("error");
	}
}
 
 

log4j.properties

 

Html代码 复制代码 收藏代码
  1. log4j.rootLogger=debug,appender1   
  2. log4j.appender.appender1=org.apache.log4j.ConsoleAppender   
  3. log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout  
log4j.rootLogger=debug,appender1
log4j.appender.appender1=org.apache.log4j.ConsoleAppender
log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout
 

显示结果:

Html代码 复制代码 收藏代码
  1. [main] DEBUG org.impl.Log4jDemo - debug   
  2. [main] INFO org.impl.Log4jDemo - info   
  3. [main] ERROR org.impl.Log4jDemo - error  
[main] DEBUG org.impl.Log4jDemo - debug
[main] INFO org.impl.Log4jDemo - info
[main] ERROR org.impl.Log4jDemo - error
 

这样一个简单的log4j应用。

 

这个配置文件的意思是:

rootLogger表示最低显示等级,即显示debug等级及以上的信息;

appender1表示一个名字;

ConsoleAppender表示输出到控制台,如果想要输出到文件,则可以使用FileAppender并制定文件名称;

TTCCLayout是一种布局方式;

debug等级表示在编译开发阶段的信息;

error等级表示错误信息;

info等级表示一般的信息;

 

如果看到如下信息:

Html代码 复制代码 收藏代码
  1. log4j:WARN No appenders could be found for logger (org.impl.Log4jDemo).   
  2. log4j:WARN Please initialize the log4j system properly.   
  3. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.  
log4j:WARN No appenders could be found for logger (org.impl.Log4jDemo).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
 

表示配置文件位置不正确,应该放到src目录下!

四、逐步了解Log4j

任务1:将日志输出到指定文件

只需要修改配置文件即可,配置文件修改为:

 

Java代码 复制代码 收藏代码
  1. log4j.rootLogger=debug,appender1   
  2. log4j.appender.appender1=org.apache.log4j.FileAppender   
  3. log4j.appender.appender1.File=./java0.log   
  4. log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout  
log4j.rootLogger=debug,appender1
log4j.appender.appender1=org.apache.log4j.FileAppender
log4j.appender.appender1.File=./java0.log
log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout
 

 

这样就指定了日志输出到工程目录下的java0.log文件中;

注意:这个日志文件时追加类型的。

 

任务2:将日志输出以HTML格式输出(效果很好!)

修改配置文件为:

Html代码 复制代码 收藏代码
  1. log4j.rootLogger=debug,appender1   
  2. log4j.appender.appender1=org.apache.log4j.FileAppender   
  3. log4j.appender.appender1.File=./java0.html   
  4. log4j.appender.appender1.layout=org.apache.log4j.HTMLLayout  
log4j.rootLogger=debug,appender1
log4j.appender.appender1=org.apache.log4j.FileAppender
log4j.appender.appender1.File=./java0.html
log4j.appender.appender1.layout=org.apache.log4j.HTMLLayout

 

即可;

 

任务3:同时输出到控制台和文件

修改配置文件为:

Java代码 复制代码 收藏代码
  1. log4j.rootLogger=debug,appender1,appender2   
  2. log4j.appender.appender1=org.apache.log4j.FileAppender   
  3. log4j.appender.appender1.File=./log4j.HTML   
  4. log4j.appender.appender1.layout=org.apache.log4j.HTMLLayout   
  5.   
  6. log4j.appender.appender2=org.apache.log4j.ConsoleAppender   
  7. log4j.appender.appender2.layout=org.apache.log4j.SimpleLayout  
log4j.rootLogger=debug,appender1,appender2
log4j.appender.appender1=org.apache.log4j.FileAppender
log4j.appender.appender1.File=./log4j.HTML
log4j.appender.appender1.layout=org.apache.log4j.HTMLLayout

log4j.appender.appender2=org.apache.log4j.ConsoleAppender
log4j.appender.appender2.layout=org.apache.log4j.SimpleLayout

五、Log4j核心组件

 1.Logger

 

设定了显示日志的级别;

常用级别为debug,info,warn,error,fatal;

 

2.Appender

 

设定了日志的输出目的;

常用有:

(1)ConsoleAppender

(2)FileAppender

(3)DailyRollingFileAppender  一天换一个文件

(4)JdbcAppender   输出到数据库
 

3.Layout

 

设定日志的内容格式;

 

常用有:

(1)HTMLLayout;

(2)TTCCLayout;

(3)PatternLayout;制定布局样式

 

如果要设置PatternLayout,必须将配置文件修改为以下形式:

 

Java代码 复制代码 收藏代码
  1. log4j.rootLogger=debug,appender1,appender2   
  2. log4j.appender.appender1=org.apache.log4j.FileAppender   
  3. log4j.appender.appender1.File=./log4j.HTML   
  4. log4j.appender.appender1.layout=org.apache.log4j.HTMLLayout   
  5.   
  6. log4j.appender.appender2=org.apache.log4j.ConsoleAppender   
  7. log4j.appender.appender2.layout=org.apache.log4j.PatternLayout   
  8.   
  9. log4j.appender.appender2.layout.ConversionPattern= 格式名称  
log4j.rootLogger=debug,appender1,appender2
log4j.appender.appender1=org.apache.log4j.FileAppender
log4j.appender.appender1.File=./log4j.HTML
log4j.appender.appender1.layout=org.apache.log4j.HTMLLayout

log4j.appender.appender2=org.apache.log4j.ConsoleAppender
log4j.appender.appender2.layout=org.apache.log4j.PatternLayout

log4j.appender.appender2.layout.ConversionPattern= 格式名称
 

格式形式如下:

 

%p:日志优先级(debug、info)

%t:输出日志的线程名;

%d{yyyy-MM-dd HH:mm:ss}:时间;

%c:所属类名;

%r:日志输出所花时间;

%n:换行;

%l:日志所在行;

%m:信息;

%M:方法;

 

比如:

 

%r [%t] -%l %p %d{yyyy-MM-dd HH:mm:ss} %n

显示如下:

3 [main] -org.impl.Log4jDemo.main(Log4jDemo.java:10) ERROR 2012-01-11 17:11:37

 

3表示所花时间;

[main]表示线程;

org.impl.Log4jDemo.main(Log4jDemo.java:10) 表示   %l   ;

ERROR表示%p;

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics