寒江雪
BlogJava
首页
新随笔
联系
聚合
管理
posts - 8, comments - 174, trackbacks - 0
LOG4J 之经典篇
一、log4j配置,一般可以采用两种方式,资源文件和XML文件。
1、属性文件
log4j.rootLogger=DEBUG,stdout,R
##日志文件的名称(定义为控制台输出)
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
##灵活定义输出格式
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
##输出格式定义
log4j.appender.stdout.layout.ConversionPattern=[%t] %-5p %-20c{2} - %m %n
##日志文件的名称(定义为文件输出)
log4j.appender.R=org.apache.log4j.RollingFileAppender
##日志文件路径
log4j.appender.R.File=D:/log/wenhan-uk.log
##
log4j.appender.R.ImmediateFlush=true
##日志文件的大小
log4j.appender.R.MaxFileSize=100KB
##
log4j.appender.R.MaxBackupIndex=1
##文件输出方式
log4j.appender.R.layout=org.apache.log4j.PatternLayout
##输出格式定义
log4j.appender.R.layout.ConversionPattern=%d{ABSOLUTE} [%t] %-5p %-30c{3} %x - %m %n
############################### 配置根Logger ############################
语法: log4j.rootLogger = [ level ] , appenderName, appenderName …
参数:
1、 level: log4j级别,是日志记录的优先级。
2、 appenderName: 日志信息输出处,您可以同时指定多个输出目的地,可以是文件、控制台等。
例子: log4j.rootLogger=DEBUG,R DEBUG为级别 A1为输出地
############################### log4j级别 ###############################
级别:
FATAL - 0 指出每个严重的错误事件将会导致应用程序的退出。
ERROR - 3 指出虽然发生错误事件,但仍然不影响系统的继续运行。
WARN - 4 表明会出现潜在错误的情形。
INFO - 6 表明消息在粗粒度级别上突出强调应用程序的运行过程。
DEBUG - 7 指出细粒度信息事件对调试应用程序是非常有帮助的。
############################### appender ###############################
类别:
org.apache.log4j.ConsoleAppender (控制台)
org.apache.log4j.FileAppender (文件)
org.apache.log4j.DailyRollingFileAppender (每天产生一个日志文件)
org.apache.log4j.RollingFileAppender (文件大小到达指定尺寸的时候产生一个新的文件)
org.apache.log4j.WriterAppender (将日志信息以流格式发送到任意指定的地方)
例子:
log4j.appender.A1=org.apache.log4j.ConsoleAppender (指定A1的appender为控制台)
############################## layout ##################################
类别:
org.apache.log4j.HTMLLayout (以HTML表格形式布局)
org.apache.log4j.PatternLayout (可以灵活地指定布局模式)
org.apache.log4j.SimpleLayout (包含日志信息的级别和信息字符串)
org.apache.log4j.TTCCLayout (包含日志产生的时间、线程、类别等等信息)
######################## 配置log4j输出地appender ##########################
语法:
log4j.appender.[appenderName] = appender class (指定输出地所对应的class)
log4j.appender.[appenderName].option1 = value1 (设定第一个参数)
参数包含文件路径、输出格式等等
log4j.appender.[appenderName].optionN = valueN (设定第N个参数)
例子:
log4j.appender.stdout=
org.apache.log4j.ConsoleAppender (指定stdout输出地为控制台)
log4j.appender.stdout.layout=
org.apache.log4j.PatternLayout (定义为灵活样式输出)
log4j.appender.stdout.layout.ConversionPattern=
[%t] %-5p %-20c{2} - %m %n (指定日志输出格式)
######################## 定义灵活输出格式 ###################################
参数:
-X号: X信息输出时左对齐;
%p: 日志信息级别
%d{}: 日志信息产生时间
%c: 日志信息所在地(类名)
%m: 产生的日志具体信息
%n: 输出日志信息换行
############################## 其他设置 ###################################
关于Log4j比较全面的配置
LOG4J的配置之简单使它遍及于越来越多的应用中了:Log4J配置文件实现了输出到控制台、文件、回滚文件、发送日志邮件、输出到数据库日志表、自定义标签等全套功能。择其一二使用就够用了,
log4j.rootLogger=DEBUG,CONSOLE,A1,im
log4j.addivity.org.apache=true
# 应用于控制台
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.Threshold=DEBUG
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
#log4j.appender.CONSOLE.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD] n%c[CATEGORY]%n%m[MESSAGE]%n%n
#应用于文件
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=file.log
log4j.appender.FILE.Append=false
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
# Use this layout for LogFactor 5 analysis
# 应用于文件回滚
log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender
log4j.appender.ROLLING_FILE.Threshold=ERROR
log4j.appender.ROLLING_FILE.File=rolling.log
log4j.appender.ROLLING_FILE.Append=true
log4j.appender.ROLLING_FILE.MaxFileSize=10KB
log4j.appender.ROLLING_FILE.MaxBackupIndex=1
log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.ROLLING_FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
#应用于socket
log4j.appender.SOCKET=org.apache.log4j.RollingFileAppender
log4j.appender.SOCKET.RemoteHost=localhost
log4j.appender.SOCKET.Port=5001
log4j.appender.SOCKET.LocationInfo=true
# Set up for Log Facter 5
log4j.appender.SOCKET.layout=org.apache.log4j.PatternLayout
log4j.appender.SOCET.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD]%n%c[CATEGORY]%n%m[MESSAGE]%n%n
# Log Factor 5 Appender
log4j.appender.LF5_APPENDER=org.apache.log4j.lf5.LF5Appender
log4j.appender.LF5_APPENDER.MaxNumberOfRecords=2000
# 发送日志给邮件
log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
log4j.appender.MAIL.Threshold=FATAL
log4j.appender.MAIL.BufferSize=10
log4j.appender.MAIL.From=xxx@www.xxx.com
log4j.appender.MAIL.SMTPHost=www.wusetu.com og4j.appender.MAIL.Subject=Log4J Message
log4j.appender.MAIL.To=xxx@www.xxx.com
log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout
log4j.appender.MAIL.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
# 用于数据库
log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.DATABASE.URL=jdbc:mysql://localhost:3306/test
log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver
log4j.appender.DATABASE.user=root
log4j.appender.DATABASE.password=
log4j.appender.DATABASE.sql=INSERT INTO LOG4J (Message) VALUES ('[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n')
log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout
log4j.appender.DATABASE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.File=SampleMessages.log4j
log4j.appender.A1.DatePattern=yyyyMMdd-HH'.log4j'
log4j.appender.A1.layout=org.apache.log4j.xml.XMLLayout
输出到2000NT日志
把Log4j压缩包里的NTEventLogAppender.dll拷到WINNT\SYSTEM32目录下
log4j.logger.NTlog=FATAL, A8
# APPENDER A8
log4j.appender.A8=org.apache.log4j.nt.NTEventLogAppender
log4j.appender.A8.Source=JavaTest
log4j.appender.A8.layout=org.apache.log4j.PatternLayout
log4j.appender.A8.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%n
#自定义Appender
log4j.appender.im = net.cybercorlin.util.logger.appender.IMAppender
log4j.appender.im.host = mail.cybercorlin.net
log4j.appender.im.username = username
log4j.appender.im.password = password
log4j.appender.im.recipient = xxx@xxx.net
log4j.appender.im.layout=org.apache.log4j.PatternLayout
log4j.appender.im.layout.ConversionPattern =[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
##################################### end ######################################
2、XML文件例子
<?
xml version="1.0" encoding="GB2312"
?>
<!
DOCTYPE log4j:configuration SYSTEM "log4j.dtd"
>
<
log4j:configuration
xmlns:log4j
="http://jakarta.apache.org/log4j/"
>
<
appender
name
="com.unmi.all"
class
="org.apache.log4j.RollingFileAppender"
>
<!--
设置通道ID:com.unmi.all和输出方式:org.apache.log4j.RollingFileAppender
-->
<
param
name
="File"
value
="E:/study/log4j/all.output.log"
/>
<!--
设置File参数:日志输出文件名
-->
<
param
name
="Append"
value
="false"
/>
<!--
设置是否在重新启动服务时,在原有日志的基础添加新日志
-->
<
param
name
="MaxBackupIndex"
value
="10"
/>
<
layout
class
="org.apache.log4j.PatternLayout"
>
<
param
name
="ConversionPattern"
value
="%p (%c:%L)- %m%n"
/>
<!--
设置输出文件项目和格式
-->
</
layout
>
</
appender
>
<
appender
name
="com.unmi.zcw"
class
="org.apache.log4j.RollingFileAppender"
>
<
param
name
="File"
value
="E:/study/log4j/unmi.output.log"
/>
<
param
name
="Append"
value
="true"
/>
<
param
name
="MaxFileSize"
value
="10240"
/>
<!--
设置文件大小
-->
<
param
name
="MaxBackupIndex"
value
="10"
/>
<
layout
class
="org.apache.log4j.PatternLayout"
>
<
param
name
="ConversionPattern"
value
="%p (%c:%L)- %m%n"
/>
</
layout
>
</
appender
>
<
logger
name
="unmi.log"
>
<!--
设置域名限制,即zcw.log域及以下的日志均输出到下面对应的通道中
-->
<
level
value
="debug"
/>
<!--
设置级别
-->
<
appender-ref
ref
="com.unmi.zcw"
/>
<!--
与前面的通道id相对应
-->
</
logger
>
<
root
>
<!--
设置接收所有输出的通道
-->
<
appender-ref
ref
="com.unmi.all"
/>
<!--
与前面的通道id相对应
-->
</
root
>
</
log4j:configuration
>
二、配置文件加载方法:
对于properties文件,一般都不用手工去加载,由Log4j第一次初始化时自动就加载了
import
org.apache.log4j.Logger;
import
org.apache.log4j.PropertyConfigurator;
import
org.apache.log4j.xml.DOMConfigurator;
public
class
Log4jApp
{
public
static
void
main(String[] args)
{
DOMConfigurator.configure(
"
E:/study/log4j/log4j.xml
"
);
//
加载.xml文件
//
PropertyConfigurator.configure("E:/study/log4j/log4j.properties");
//
加载.properties文件
Logger log
=
Logger.getLogger(
"
com.unmi.test
"
);
log.info(
"
测试
"
);
}
}
############################ end ##############################
posted on 2007-08-15 17:00
月月鸟
阅读(2529)
评论(7)
编辑
收藏
所属分类:
J2EE
FeedBack:
#
re: LOG4J 之经典篇
2008-11-28 11:15 |
sunchuanfu
lz写的很详细啊,收藏了先。
回复
更多评论
#
re: LOG4J 之经典篇
2010-07-01 22:38 |
月月鸟
http://wxinpeng.javaeye.com/blog/552735
Spring的AOP事务管理默认针对unchecked异常回滚
回复
更多评论
#
re: LOG4J 之经典篇
2010-07-07 21:01 |
月月鸟
http://www.cr173.com/soft/11546.html
回复
更多评论
#
re: LOG4J 之经典篇
2010-07-27 22:09 |
月月鸟
http://www.blogjava.net/Unmi/archive/2007/10/17/153413.html
回复
更多评论
#
re: LOG4J 之经典篇
2010-08-23 23:21 |
月月鸟
让开发自动化系列专栏
LiquiBase
http://www.ibm.com/developerworks/cn/java/j-ap/
回复
更多评论
#
re: LOG4J 之经典篇
2010-08-23 23:40 |
月月鸟
http://www.phontol.com/20090717_480370_3.html
回复
更多评论
#
re: LOG4J 之经典篇
2010-09-19 20:43 |
wenpt
http://plugins.intellij.net/plugin/?id=631
回复
更多评论
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
<
2010年8月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(5)
给我留言
查看公开留言
查看私人留言
随笔分类
(8)
ajax(2)
eclipse
flex(1)
hibernate
ibatis
J2EE(1)
J2SE(1)
javascript
jsf
spring
struts
webwork
其他(3)
报表(report)
随笔档案
(8)
2007年8月 (8)
文章分类
(1)
flex
其他(1)
新技术
文章档案
(1)
2012年4月 (1)
其他
ext 中文文档中心
javascirpt封装库API中文文档
Flex中文网站
ORM Tool
中间件技术
娱乐
技术
dhtml学习
ext中文学习中心
Flex程序示例
prototype1.5.0中文API在线版
SpringSide---企业应用的开源构件库
搜索
积分与排名
积分 - 115780
排名 - 505
最新随笔
1. PostgreSQL 数据库性能提升的几个方面
2. 收藏微软面试智力题 (附答案)
3. struts2.0 + ajax + xml (附源码)
4. 经典收藏----和大家一同分享
5. 尝试Flex3 令人振奋的新功能——framework持久化缓存
6. LOG4J 之经典篇
7. swing 选择日期控件
8. 探讨J2EE开发框架-----高手留言
9. struts 2.0 + 原始 AJAX + XML
最新评论
1. re: PostgreSQL 数据库性能提升的几个方面
评论内容较长,点击标题查看
--月月鸟
2. re: PostgreSQL 数据库性能提升的几个方面
评论内容较长,点击标题查看
--月月鸟
3. re: PostgreSQL 数据库性能提升的几个方面
评论内容较长,点击标题查看
--pt
4. re: PostgreSQL 数据库性能提升的几个方面
评论内容较长,点击标题查看
--pt
5. re: PostgreSQL 数据库性能提升的几个方面
评论内容较长,点击标题查看
--pt
6. re: PostgreSQL 数据库性能提升的几个方面
评论内容较长,点击标题查看
--pt
7. re: PostgreSQL 数据库性能提升的几个方面
黄金时时彩全能计划王
黄金时时彩全能计划王
--pt
8. re: swing 选择日期控件
@交口称赞 邮箱arvinsw521403@163.com
--zhangyi
9. re: swing 选择日期控件
@交口称赞 求下拉出时间的代码!感激不尽
--zhangyi
10. re: PostgreSQL 数据库性能提升的几个方面
评论内容较长,点击标题查看
--pt
评论排行榜
1. 收藏微软面试智力题 (附答案)(104)
2. struts2.0 + ajax + xml (附源码)(17)
3. swing 选择日期控件(13)
4. 探讨J2EE开发框架-----高手留言(10)
5. struts 2.0 + 原始 AJAX + XML(9)
6. LOG4J 之经典篇(7)
7. 尝试Flex3 令人振奋的新功能——framework持久化缓存(3)
8. 经典收藏----和大家一同分享(1)