您的位置:首页 > 其它

log4j配置文件基本含义说明

2010-03-17 11:29 393 查看
本文转自http://blog.chinaunix.net/u/29358/showart_224628.html。此处仅为留以自用。

使用log4j

获取logger
Logger.getRootLogger() 获取根logger
Logger.getLogger(String
name)获取子logger
Logger.getLogger(Class
clazz)或
Logger.getLogger(clazz.getName())

设置日志级别(.setLevel(int,Exception))
Level.ALL打开所有日志
Level.DEBUG
用于调试
Level.INFO 用于运行过程
Level.WARN 用于潜在的错误
Level.ERROR
用于错误事件
Level.FATAL 用于严重错误时间
Level.OFF 关闭所有日志

输出端Appender(.addAppender(Appender).setAdditivity(boolean
additive)是否覆盖)
org.apache.log4j.ConsoleAppender 输出到控制台
targer:
ConsoleAppender.SYSTEM_OUT(Default)
ConsoleAppender.SYSTEM_ERR
public
ConsoleAppender(Layout)
public ConsoleAppender(Layout,String
targer)
org.apache.log4j.FileAppender 输出到文件
public
FileAppender(Layout,String fileName)
public FileAppender(Layout,String
fileName,boolean
append)是否覆盖
org.apache.log4j.DailyRollingFileAppender 输出到文件,每天一个新文件
org.apache.log4j.RollingFileAppender 输出到文件,自动新增改名
public
RollingFileAppender(Layout,String fileName)
void setMaxBackupIndex(int
index) 设置日志文件最大备份数
void setMaximumFileSize(long
size) 设置日志文件最大尺寸
org.apache.log4j.WriterAppender 流格式输出到任意地方
org.apache.log4j.JDBCAppender 输出到数据库

日志格式化(Layout)
%c 类全名
%d 时间
%f 类名
%l 位置
%m 信息
%n 换行
%p 级别
%r 耗时
%t 线程名

public PatternLayout() 使用默认设置DEFAULT_CONVERSION_PATTERN 只打印信息
public
PatternLayout(String)使用自定义的pattern构造一个PatternLayout
void
setConversionPattern(String) 设置日志格式
HTMLLayout
SimpleLayout

5.
1.BasicConfigurator.configure()
PatternLayout p = new
PatternLayout("%p [%t] %c (%F:%L) - %m%n");
ConsoleAppender a = new
ConsoleAppender(p,ConsoleAppender.SYSTEM_OUT);
root.addAppender(a);
rootLogger.setLevel(Level.DEBUG);
2.PropertyConfigurator.configure("/help/example.properties")
String
resource = "/help/example.properties";
URL configFileResource =
Log4J.class.getResource(resource);
PropertyConfigurator.configure(configFileResource);
3.DOMConfigurator.configure("/help/example.xml")
xml
declaration and dtd
|
log4j:configuration
|
+-- appender (name,
class)
| |
| +-- param (name, value)
| +-- layout (class)
| |

| +-- param (name, value)
+-- logger (name, additivity)
| |
|
+-- level (class, value)
| | |
| | +-- param (name, value)
| +--
appender-ref (ref)
+-- root
|
+-- param (name, class)
+-- level

| |
| +-- param (name, value)
+-- appender-ref (ref)

0.log4j.properties模板
log4j.rootLogger=info,CONSOLE,RFILE,FILE,DB 设置级别和三个输出端
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender

log4j.appender.CONSOLE.Target=System.out
控制台类型
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout

log4j.appender.CONSOLE.layout.ConversionPattern= %4p [%t] (%F:%L) -
%m%n

log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=/help/my.properties 目标文件
log4j.appender.FILE.Append=false 是否追加
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout 布局模式
log4j.appender.FILE.layout.ConversionPattern=%d{yyyy-MM-dd
hh:mm:ss}:%p %c:%L - %m%n 格式化布局

log4j.appender.RFILE=org.apache.log4j.RollingFileAppender
log4j.appender.RFILE.File=/help/my.properties 目标文件
log4j.appender.RFILE.MaxFileSize=1KB 最大长度
log4j.appender.RFILE.MaxBackupIndex=3 最多备份
log4j.appender.RFILE.layout=org.apache.log4j.PatternLayout 布局模式
log4j.appender.RFILE.layout.ConversionPattern=%d{yyyy-MM-dd
hh:mm:ss}:%p %c:%L - %m%n 格式化布局

log4j.appender.DB=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.DB.URL=jdbc:oracle:thin:@127.0.0.1:1521:mumu URL
log4j.appender.DB.driver=oracle.jdbc.driver.OracleDriver 驱动
log4j.appender.DB.user=liulibo 用户名
log4j.appender.DB.password=liulibo 密码
log4j.appender.DB.layout=org.apache.log4j.PatternLayout 布局模式
log4j.appender.DB.layout.ConversionPattern=insert
into log4j(createdate,thread,level_,class,message)
values(/'%d/',/'%t/',/'%-5p/',/'%c/',/'%m/')

create table log4j(createdate varchar2(32),thread varchar2(32),level_
varchar2(32),class varchar2(32),message
varchar2(32));

0.XML模板
<?xml version="1.0" encoding="UTF-8"
?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration>

<appender
name="ConsoleAppender"
class="org.apache.log4j.ConsoleAppender">
<layout
class="org.apache.log4j.PatternLayout">
<param
name="ConversionPattern" value="%d{yyyy-MM-dd hh:mm:ss}:%p %t %c -
%m%n"/>
</layout>
</appender>

<appender
name="RollingFileAppender"
class="org.apache.log4j.RollingFileAppender">
<param name="Append"
value="false"/>
<param name="MaxFileSize" value="1KB"/>

<param name="File" value="dom/my.log"/>
<param
name="MaxBackupIndex" value="3"/>
<layout
class="org.apache.log4j.PatternLayout">
<param
name="ConversionPattern" value="%d{yyyy-MM-dd hh:mm:ss}:%p %t %c -
%m%n"/>
</layout>
</appender>

<appender
name="JDBCAppender" class="org.apache.log4j.jdbc.JDBCAppender">

<param name="URL" value="jdbc:oracle:thin:@127.0.0.1:1521:mumu"/>

<param name="user" value="liulibo"/>
<param name="password"
value="liulibo"/>
<param name="driver"
value="oracle.jdbc.driver.OracleDriver"/>
<layout
class="org.apache.log4j.PatternLayout">
<param
name="ConversionPattern" value="insert into
log4j(createdate,thread,level_,class,message)
values(/'%d/',/'%t/',/'%-5p/',/'%c/',/'%m/')"/>

</layout>
</appender>

<root>
<priority
value ="debug" />
<appender-ref
ref="ConsoleAppender"/>
<appender-ref
ref="RollingFileAppender"/>
<appender-ref
ref="JDBCAppender"/>
</root>

</log4j:configuration>

应用
web.xml
<context-param>
<param-name>props</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</context-param>

<listener>
<listener-class>cart.listener.SCServletContextListener</listener-class>
</listener>
初始化方法中添加
private
void initLog4j(ServletContext context){
String prefix =
context.getRealPath("/");
System.out.println("prefix:"+prefix);

String props = context.getInitParameter("props");
if(props != null)
{
PropertyConfigurator.configure(prefix+props);
}
Logger logger
= Logger.getLogger(SCServletContextListener.class);
}

另外转自:http://www.nihaoblog.com/15_890.html

[b]log4j配置文件基本含义说明[/b]

log4j.properties配置文件讲解如下:
# Set root logger level to DEBUG and its only appender to A1

#log4j中有五级logger
#FATAL 0
#ERROR 3
#WARN 4
#INFO 6

#DEBUG 7

配置根Logger,其语法为:
#log4j.rootLogger = [
level ] , appenderName, appenderName, …
log4j.rootLogger=INFO, A1
,R
#这一句设置以为着所有的log都输出
#如果为log4j.rootLogger=WARN,
则意味着只有WARN,ERROR,FATAL
#被输出,DEBUG,INFO将被屏蔽掉.
# A1 is set to be a
ConsoleAppender.
#log4j中Appender有几层如控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX
Syslog守护进程等
#ConsoleAppender输出到控制台

log4j.appender.A1=org.apache.log4j.ConsoleAppender
# A1
使用的输出布局,其中log4j提供4种布局.
org.apache.log4j.HTMLLayout(以HTML表格形式布局)
#org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
#org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
#org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

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

#灵活定义输出格式 具体查看log4j javadoc org.apache.log4j.PatternLayout
#d 时间 ....

log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss}
[%c]-[%p] %m%n
#R 输出到文件
RollingFileAppender的扩展,可以提供一种日志的备份功能。
log4j.appender.R=org.apache.log4j.RollingFileAppender

#日志文件的名称
log4j.appender.R.File=log4j.log

#日志文件的大小
log4j.appender.R.MaxFileSize=100KB
#
保存一个备份文件
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.TTCCLayout
#log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd
HH:mm:ss} [%c]-[%p] %m%n

配置根Logger,其语法为:

log4j.rootLogger = [ level ] , appenderName, appenderName,
...

level 是日志记录的优先级
appenderName就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。

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

log4j.appender.appenderName =
fully.qualified.name.of.appender.class
log4j.appender.appenderName.option1 =
value1
...
log4j.appender.appenderName.option =
valueN

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 =
fully.qualified.name.of.layout.class
log4j.appender.appenderName.layout.option1
= value1
....
log4j.appender.appenderName.layout.option =
valueN

Log4j提供的layout有以下几种:
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: