Chinaunix首页 | 论坛 | 博客
  • 博客访问: 37411
  • 博文数量: 14
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 150
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-14 13:14
文章分类

全部博文(14)

文章存档

2008年(14)

我的朋友

分类: 系统运维

2008-11-06 14:16:24

常用的Log4j的日志信息输出级别从高到低分别是ERROR、WARN、INFO、DEBUG。

配置根Logger语法为:

log4j.rootLogger = [Level] , appenderName1, appenderName2, ...


Level 是日志记录的优先级
appenderName用于指定日志信息输出目的地,您可以同时指定多个输出目的地。

配置日志信息输出目的地Appender语法为:

log4j.appender.appenderName = appender.class(详细类参考Log4j的appender类)
log4j.appender.appenderName.option = value(option指appender的属性如layout、File等)

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 = appender.layout.class(布局类参考log4j提供的layout)
log4j.appender.appenderName.layout.option = value
Log4j提供的layout有以下几种:
org.apache.log4j.HTMLLayout(HTML表格形式),
org.apache.log4j.PatternLayout(自己指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

其中,自定义布局模式常用参数如下:

%m 输出代码中指定的消息 (在代码中使用Logger对象输出的消息,参考下面的例子)

%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:class.function(className:LineNumber)。
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符

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

举例:

前提:导入log4j的jar包(log4j.1.2.15.jar)

Log4j.properties(该文件放在src目录下),内容如下:

log4j.rootLogger=INFO,fileAppender,daily

#Output the log messages to log.file

#log4j.appender.fileAppender =org.apache.log4j.FileAppender

#log4j.appender.fileAppender.file=filelog.log

#log4j.appender.fileAppender.layout= org.apache.log4j.PatternLayout

#log4j.appender.fileAppender.layout.ConversionPattern=>>%p:%d{yyyy-MM-dd HH:mm:ss}>>>%l :%n>>>>>>%m%n

#output a file per day

log4j.appender.daily = org.apache.log4j.DailyRollingFileAppender

log4j.appender.daily.file=filelog.log

log4j.appender.daily.DatePattern = '.'yyyy-MM-dd

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

log4j.appender.daily.layout.ConversionPattern=>>%p:%d{yyyy-MM-dd HH:mm:ss}>>>%l :%n>>>>>>%m%n


由于实例简单,在此直接在jsp中输出日志信息,index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<%@ page import="org.apache.log4j.Logger" %>

DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>test log4jtitle>

head>

<body>

<%

Logger log = Logger.getLogger(this.getClass().getName());

log.debug("Debug Infor");

log.info("test log4j--->info");

log.warn("warn Infor");

%>

body>

html>

日志输出信息为:

>>INFO:2008-11-06 12:08:02>>>org.apache.jsp.index_jsp._jspService(index_jsp.java:56) :

>>>>>>test log4j--->info

>>WARN:2008-11-06 12:08:02>>>org.apache.jsp.index_jsp._jspService(index_jsp.java:57) :

>>>>>>warn Infor




阅读(1020) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~