您的位置:首页 > 其它

log4j输出源|log4j配置文件

2006-09-09 19:23 274 查看
[align=left]l Log4j输出源的附加特性说明:[/align]
[align=left]日志记录器C的日志语句的输出将定向到C和它的祖先中的所有的输出源。这是条款“输出源的附加特性(appender additivity)”的意图.[/align]
[align=left]然而,假如有一个日志记录器C的祖先,叫做P,有一个附加标识被设置为false,然后C的输出将被定向到C和直到C的祖先P(包括P)中的所有的输出源,但是不包括P的祖先的中的任何输出源。[/align]
日志记录器有它自己附加特性,该特性被默认设置为true
下表展示了一个例子:
[align=center]日志记录器[/align]
[align=center]添加的输出源[/align]
[align=center]附加特性标识[/align]
[align=center]输出目标[/align]
[align=center]评论[/align]
[align=left]root [/align]
[align=left]A1 [/align]
[align=left]not applicable [/align]
[align=left]A1 [/align]
[align=left]根日志记录器是匿名的,但是可以用Logger.getRootLogger()方法来存取。根日志记录器没有默认输出源。[/align]
[align=left]x [/align]
[align=left]A-x1, A-x2 [/align]
[align=left]true [/align]
[align=left]A1, A-x1, A-x2 [/align]
[align=left]x和根的输出源[/align]
[align=left]x.y [/align]
[align=left]none [/align]
[align=left]true [/align]
[align=left]A1, A-x1, A-x2 [/align]
[align=left]x和根的输出源[/align]
[align=left]x.y.z [/align]
[align=left]A-xyz1 [/align]
[align=left]true [/align]
[align=left]A1, A-x1, A-x2, A-xyz1 [/align]
[align=left]x.y.z 、x和根的输出源[/align]
[align=left]security [/align]
[align=left]A-sec [/align]
[align=left]false [/align]
[align=left]A-sec [/align]
[align=left]由于附加标识被设置为false,没有输出源聚集[/align]
[align=left]security.access [/align]
[align=left]none [/align]
[align=left]true [/align]
[align=left]A-sec [/align]
[align=left]由于安全中附加标识被设置为false,所以仅仅有安全的输出源。[/align]
l log4j中指定配置文件时,默认是要放在项目的目录下……

package logFourj;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;

public class LogFourjTest {
public static void main(String[] args) {
// TODO 自动生成方法存根
//**这里用PropertyConfigurator.configure方法调的log4j.properties文件要放在logFour 包外,项目下,与logFour包同级**//
//PropertyConfigurator.configure("log4j.properties");
//**这里用PropertyConfigurator.configure方法调的log4j.properties文件时由于指定了在logFourj目录下,于是可以将log4j.properties文件放在调用类LogFourjTest的同级目录下**//
PropertyConfigurator.configure("logFourj/log4j.properties");
Logger logger = Logger.getLogger(LogFourjTest.class);
logger.debug("i am debug");
logger.info("i am info");
logger.warn("i am warn");
logger.error("i am error");
logger.fatal("i am fatal");
}
}

l 配置文件如下:
##设置根日志记录器;等号后面依次是设置级别和输出源##
[align=left]log4j.rootLogger=debug, stdout, R[/align]
[align=left]#设置输出源 [/align]
[align=left]log4j.appender.stdout=org.apache.log4j.ConsoleAppender[/align]
[align=left]#设置布局器[/align]
[align=left]log4j.appender.stdout.layout=org.apache.log4j.PatternLayout[/align]
[align=left] [/align]
[align=left]# Pattern to output the caller''s file name and line number.[/align]
[align=left]log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n[/align]
[align=left] [/align]
[align=left]log4j.appender.R=org.apache.log4j.RollingFileAppender[/align]
[align=left]log4j.appender.R.File=example.log[/align]
[align=left] [/align]
[align=left]log4j.appender.R.MaxFileSize=100KB[/align]
[align=left]# Keep one backup file[/align]
[align=left]log4j.appender.R.MaxBackupIndex=1[/align]
[align=left] [/align]
[align=left]log4j.appender.R.layout=org.apache.log4j.PatternLayout[/align]
[align=left]log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n[/align]
[align=left] [/align]
[align=left]#设置cn.itcast.yao子记录器的信息[/align]
[align=left]log4j.logger.cn.itcast.yao=WARN,A1[/align]
[align=left] [/align]
[align=left]#设置additivity属性值为FALSE, 输出将被定向到cn.itcast.yao的所有子子孙孙和直到cn.itcast.yao(包括cn.itcast.yao)中的所有的输出源,但是不包括cn.itcast.yao的祖先的中的任何输出源。[/align]
[align=left]log4j.additivity.cn.itcast.yao=FALSE[/align]
[align=left] [/align]
[align=left]log4j.appender.A1=org.apache.log4j.ConsoleAppender[/align]
[align=left]log4j.appender.A1.layout=org.apache.log4j.PatternLayout[/align]
[align=left]log4j.appender.A1.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n[/align]

l 在应用类中:
#可以直接用cn.itcast.yao设置其所属辈份
Logger logger = Logger.getLogger("cn.itcast.yao");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: