常用log4j配置
2009-05-18 20:52
344 查看
常用log4j配置,一般可以采用两种方式,.properties和.xml,下面举两个简单的例子:
最简单的配置是只要取下面的log4j.properties文件中带下划线的四行就行,它完成日志输出到控制台。
一、log4j.properties
### 设置com.unmi域对应的级别INFO,DEBUG,WARN,ERROR和输出地A1,A2 ##
log4j.category.com.unmi = ERROR,A1
log4j.category.com.unmi = INFO,A2
### 一般把上面两行写如下方式,统一控制日志输出,再用log4j.logger设置包独立的输出级别 ##
log4j.rootLogger = DEBUG,A1
log4j.logger.com.unmi.special = ERROR
### 设置输出地A1,为ConsoleAppender(控制台) ##
log4j.appender.A1 = org.apache.log4j.ConsoleAppender
### 设置A1的输出布局格式PatterLayout,(可以灵活地指定布局模式)##
log4j.appender.A1.layout = org.apache.log4j.PatternLayout
### 配置日志输出的格式##
log4j.appender.A1.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n
### 设置输出地A2到文件(文件大小到达指定尺寸的时候产生一个新的文件)##
log4j.appender.A2 = org.apache.log4j.RollingFileAppender
### 文件位置##
log4j.appender.A2.File = E:/study/log4j/log.html
### 文件大小##
log4j.appender.A2.MaxFileSize = 500KB
log4j.appender.A2.MaxBackupIndex = 1
##指定采用html方式输出
log4j.appender.A2.layout = org.apache.log4j.HTMLLayout
二、log4j.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"
>
<!-- 设置 appender Name: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.xyz"
class
=
"org.apache.log4j.RollingFileAppender"
>
<
param
name
=
"File"
value
=
"E:/study/log4j/xyz.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"
>
<!-- 设置包名限制,即unmi.log域及以下的日志均输出到下面对应的 appender 中 -->
<
level
value
=
"debug"
/
>
<!-- 设置级别 -->
<
appender-ref
ref
=
"com.unmi.xyz"
/
>
<!-- 与前面的配置的 appender name 相对应 -->
</
logger
>
<
root
>
<!-- 设置接收所有输出的 appender -->
<
appender-ref
ref
=
"com.unmi.all"
/
>
<!-- 与前面的 appender name 相对应 -->
</
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("测试"
);
}
}
四、项目使用log4j
在
web应用中,可以将配置文件的加载放在一个单独的servlet中,并在web.xml中配置该servlet在应用启动时候加载。对于在多人项目中,
可以给每一个人设置一个输出通道,这样在每个人在构建Logger时,用自己的域名称,让调试信息输出到自己的log文件中。
五、常用输出格式
%c
列出logger名字空间的全称,如加上{<层数>}表示出从最内层算起的指定层数的名字空间
%X
按MDC(Mapped Diagnostic Context,线程映射表)输出日志。通常用于多个客户端连接同一台服务器,方便服务器区分是那个客户端访问留下来的日志。
%p
日志信息级别
%d
%d{<日期格式>}:日志信息产生时间,使用ISO8601定义的日期格式
%C
日志信息所在地(全限类名)
%m
产生的日志具体信息
%n
输出日志信息换行
%F
显示调用logger的源文件名
%l
输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数
%L
显示调用logger的代码行
%M
显示调用logger的方法名
%r
显示从程序启动时到记录该条日志时已经经过的毫秒数
%t
输出产生该日志事件的线程名
%%
显示一个百分号
补充:在配置文件中可以用变量用于引用系统属性,如
log4j.appender.A2.File = ${user.home}/${app.name}.log
如
果你在启动程序时加了 -Dapp.name=UnmiLog4jTest JVM 参数,或者在初始化 Log4j 之前,往
System.getProperties() 中 put 了 "app.name" 属性为
UnmiLog4jTest,那么就会输出日志文件到用户主目录/UnmiLog4jTest.log。user.home
属性一般都存在于系统属性中,你也可以在程序中改变它。
如果在 web.xml 中初始化 log4j,你可以在 log4j 的配置文件中更轻松的取到 web 应用的绝对路径。
http://www.blogjava.net/Unmi/archive/2006/03/24/124075.html
最简单的配置是只要取下面的log4j.properties文件中带下划线的四行就行,它完成日志输出到控制台。
一、log4j.properties
### 设置com.unmi域对应的级别INFO,DEBUG,WARN,ERROR和输出地A1,A2 ##
log4j.category.com.unmi = ERROR,A1
log4j.category.com.unmi = INFO,A2
### 一般把上面两行写如下方式,统一控制日志输出,再用log4j.logger设置包独立的输出级别 ##
log4j.rootLogger = DEBUG,A1
log4j.logger.com.unmi.special = ERROR
### 设置输出地A1,为ConsoleAppender(控制台) ##
log4j.appender.A1 = org.apache.log4j.ConsoleAppender
### 设置A1的输出布局格式PatterLayout,(可以灵活地指定布局模式)##
log4j.appender.A1.layout = org.apache.log4j.PatternLayout
### 配置日志输出的格式##
log4j.appender.A1.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n
### 设置输出地A2到文件(文件大小到达指定尺寸的时候产生一个新的文件)##
log4j.appender.A2 = org.apache.log4j.RollingFileAppender
### 文件位置##
log4j.appender.A2.File = E:/study/log4j/log.html
### 文件大小##
log4j.appender.A2.MaxFileSize = 500KB
log4j.appender.A2.MaxBackupIndex = 1
##指定采用html方式输出
log4j.appender.A2.layout = org.apache.log4j.HTMLLayout
### 设置com.unmi域对应的级别INFO,DEBUG,WARN,ERROR和输出地A1,A2 ## log4j.category.com.unmi = ERROR,A1 log4j.category.com.unmi = INFO,A2 ### 一般把上面两行写如下方式,统一控制日志输出,再用log4j.logger设置包独立的输出级别 ## log4j.rootLogger = DEBUG,A1 log4j.logger.com.unmi.special = ERROR ### 设置输出地A1,为ConsoleAppender(控制台) ## log4j.appender.A1 = org.apache.log4j.ConsoleAppender ### 设置A1的输出布局格式PatterLayout,(可以灵活地指定布局模式)## log4j.appender.A1.layout = org.apache.log4j.PatternLayout ### 配置日志输出的格式## log4j.appender.A1.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n ### 设置输出地A2到文件(文件大小到达指定尺寸的时候产生一个新的文件)## log4j.appender.A2 = org.apache.log4j.RollingFileAppender ### 文件位置## log4j.appender.A2.File = E:/study/log4j/log.html ### 文件大小## log4j.appender.A2.MaxFileSize = 500KB log4j.appender.A2.MaxBackupIndex = 1 ##指定采用html方式输出 log4j.appender.A2.layout = org.apache.log4j.HTMLLayout
二、log4j.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"
>
<!-- 设置 appender Name: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.xyz"
class
=
"org.apache.log4j.RollingFileAppender"
>
<
param
name
=
"File"
value
=
"E:/study/log4j/xyz.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"
>
<!-- 设置包名限制,即unmi.log域及以下的日志均输出到下面对应的 appender 中 -->
<
level
value
=
"debug"
/
>
<!-- 设置级别 -->
<
appender-ref
ref
=
"com.unmi.xyz"
/
>
<!-- 与前面的配置的 appender name 相对应 -->
</
logger
>
<
root
>
<!-- 设置接收所有输出的 appender -->
<
appender-ref
ref
=
"com.unmi.all"
/
>
<!-- 与前面的 appender name 相对应 -->
</
root
>
</
log4j:configuration
>
<?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" > <!-- 设置 appender Name: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.xyz" class = "org.apache.log4j.RollingFileAppender" > <param name = "File" value = "E:/study/log4j/xyz.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" > <!-- 设置包名限制,即unmi.log域及以下的日志均输出到下面对应的 appender 中 --> <level value = "debug" / ><!-- 设置级别 --> <appender-ref ref = "com.unmi.xyz" / ><!-- 与前面的配置的 appender name 相对应 --> </logger > <root > <!-- 设置接收所有输出的 appender --> <appender-ref ref = "com.unmi.all" / ><!-- 与前面的 appender name 相对应 --> </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("测试"
);
}
}
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("测试"); } }
四、项目使用log4j
在
web应用中,可以将配置文件的加载放在一个单独的servlet中,并在web.xml中配置该servlet在应用启动时候加载。对于在多人项目中,
可以给每一个人设置一个输出通道,这样在每个人在构建Logger时,用自己的域名称,让调试信息输出到自己的log文件中。
五、常用输出格式
%c
列出logger名字空间的全称,如加上{<层数>}表示出从最内层算起的指定层数的名字空间
%X
按MDC(Mapped Diagnostic Context,线程映射表)输出日志。通常用于多个客户端连接同一台服务器,方便服务器区分是那个客户端访问留下来的日志。
%p
日志信息级别
%d
%d{<日期格式>}:日志信息产生时间,使用ISO8601定义的日期格式
%C
日志信息所在地(全限类名)
%m
产生的日志具体信息
%n
输出日志信息换行
%F
显示调用logger的源文件名
%l
输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数
%L
显示调用logger的代码行
%M
显示调用logger的方法名
%r
显示从程序启动时到记录该条日志时已经经过的毫秒数
%t
输出产生该日志事件的线程名
%%
显示一个百分号
补充:在配置文件中可以用变量用于引用系统属性,如
log4j.appender.A2.File = ${user.home}/${app.name}.log
如
果你在启动程序时加了 -Dapp.name=UnmiLog4jTest JVM 参数,或者在初始化 Log4j 之前,往
System.getProperties() 中 put 了 "app.name" 属性为
UnmiLog4jTest,那么就会输出日志文件到用户主目录/UnmiLog4jTest.log。user.home
属性一般都存在于系统属性中,你也可以在程序中改变它。
如果在 web.xml 中初始化 log4j,你可以在 log4j 的配置文件中更轻松的取到 web 应用的绝对路径。
http://www.blogjava.net/Unmi/archive/2006/03/24/124075.html
相关文章推荐
- log4j.properties常用的三种配置方法
- 常用log4j配置,一般可以采用两种方式
- 常用log4j配置说明
- 常用log4j配置
- 常用log4j配置
- 常用log4j配置
- log4j--常用配置字典
- Log4j常用配置及在Spring中配置Log4j
- Log4j日志文件常用配置
- 常用log4j配置
- 常用log4j配置
- 常用log4j配置
- 常用log4j配置
- 【Java】日志知识总结和常用组合配置(commons-logging,log4j,slf4j,logback)
- log4j常用配置以及日志文件保存位置
- 【极客营】Hibernate常用的配置文件-log4j的简单的使用
- 常用log4j配置 [精简实用]
- Log4j日志文件常用配置
- 常用log4j配置
- log4j常用配置过程