最近应用开发的进程中出现了一个小问题,顺便记录一下原因和方法--输出信息
一、log4j.properties 用作
Log4j是Apache的一个开放源码代项目,通过应用Log4j,我们可以控制日记信息运送的目的地是控制台、文件、GUI件组、甚至是套接口服务器、NT的事件记录器、UNIXSyslog护守程进等;我们也可以控制每一条日记的输出格式;通过定义每一条日记信息的级别,我们够能更加致细地控制日记的成生进程。最使人感兴趣的就是,这些可以通过一个配置文件来灵巧地行进配置,而不需要修改应用的码代。
此外,通过Log4j其他语言接口,您可以在C、C++、.Net、PL/SQL序程中应用Log4j,其语法和用法与在Java序程中一样,使得多语言 分布式系统到得一个同一致一的日记件组模块。而且,通过应用各种第三方扩展,您可以很方便地将Log4j集成到J2EE、JINI甚至是SNMP应用中。(转自:http://blog.sina.com.cn/s/blog_761110d701017yuu.html)
二、log4j.properties 应用方法
.数参意思说明:
输出级别的种类
ERROR、WARN、INFO、DEBUG
ERROR 为严重错误 主要是序程的错误
WARN 为一般正告,比如session失丢
INFO 为一般要表现的信息,比如登录登出
DEBUG 为序程的调试信息
配置日记信息输出目的地
log4j.appender.appenderName = fully.qualified.name.of.appender.class
1.org.apache.log4j.ConsoleAppender(控制台)
2.org.apache.log4j.FileAppender(文件)
3.org.apache.log4j.DailyRollingFileAppender(天每生产一个日记文件)
4.org.apache.log4j.RollingFileAppender(文件大小达到指定尺寸的时候生产一个新的文件)
5.org.apache.log4j.WriterAppender(将日记信息以流格式发送到恣意指定的方地)
配置日记信息的格式
log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
1.org.apache.log4j.HTMLLayout(以HTML表格式形布局),
2.org.apache.log4j.PatternLayout(可以灵巧地指定布局式模),
3.org.apache.log4j.SimpleLayout(含包日记信息的级别和信息符字串),
4.org.apache.log4j.TTCCLayout(含包日记生产的间时、线程、类别等等信息)
控制台选项
Threshold=DEBUG:指定日记息消的输出最低次层。
ImmediateFlush=true:默许值是true,意谓着有所的息消都会被当即输出。
Target=System.err:默许情况下是:System.out,指定输出控制台
FileAppender 选项
Threshold=DEBUF:指定日记息消的输出最低次层。
ImmediateFlush=true:默许值是true,意谓着有所的息消都会被当即输出。
File=mylog.txt:指定息消输出到mylog.txt文件。
Append=false:默许值是true,即将息消增加到指定文件中,false指将息消覆盖指定的文件内容。
RollingFileAppender 选项
Threshold=DEBUG:指定日记息消的输出最低次层。
ImmediateFlush=true:默许值是true,意谓着有所的息消都会被当即输出。
File=mylog.txt:指定息消输出到mylog.txt文件。
Append=false:默许值是true,即将息消增加到指定文件中,false指将息消覆盖指定的文件内容。
MaxFileSize=100KB: 后缀可所以KB, MB 或者是 GB. 在日记文件达到该大小时,将会动自滚动,即将来原的内容移到mylog.log.1文件。
MaxBackupIndex=2:指定可以生产的滚动文件的最大数。
log4j.appender.A1.layout.ConversionPattern=%-4r %-5p %d{yyyy-MM-dd HH:mm:ssS} %c %m%n
日记信息格式中几个符号所代表的含意:
-X号: X信息输出时左齐对;
%p: 输出日记信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL,
%d: 输出日记间时点的日期或间时,默许格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出相似:2002年10月18日 22:10:28,921
%r: 输出自应用启动到输出该log信息消耗的毫秒数
%c: 输出日记信息所属的类目,常通就是地点类的全名
%t: 输出生产该日记事件的线程名
%l: 输出日记事件的生发位置,相当于%C.%M(%F:%L)的合组,包含类目名、生发的线程,以及在码代中的行数。举例:Testlog4.main (TestLog4.java:10)
%x: 输出和以后线程相关联的NDC(嵌套断诊环境),特别用到像java servlets这样的多户客多线程的应用中。
%%: 输出一个"%"符字
%F: 输出日记息消生产时地点的文件名称
%L: 输出码代中的行号
%m: 输出码代中指定的息消,生产的日记详细信息
%n: 输出一个车回行换符,Windows平台为"\r\n",Unix平台为"\n"输出日记信息行换
可以在%与式模符字之间加上修饰符来控制其最小度宽、最大度宽、和文本的齐对式方。如:
1)%20c:指定输出category的名称,最小的度宽是20,如果category的名称小于20的话,默许的情况下右齐对。
2)%-20c:指定输出category的名称,最小的度宽是20,如果category的名称小于20的话,"-"号指定左齐对。
3)%.30c:指定输出category的名称,最大的度宽是30,如果category的名称大于30的话,就会将边左多出的符字截掉,但小于30的话也不会有格空。
4)%20.30c:如果category的名称小于20就补格空,并且右齐对,如果其名称于长30符字,就从边左较远输出的符字截掉。
三、用常配置Demo
# DEBUG < INFO < WARN < ERROR < FATAL # Global logging configuration log4j.rootLogger=info, stdout,file # My logging configuration... #log4j.logger.com.tocersoft.school=DEBUG #log4j.logger.net.sf.hibernate.cache=debug ## Console output... log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p %d %C: %m%n log4j.appender.file=org.apache.log4j.FileAppender log4j.appender.file.File=../logs/iask.log log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %l %m%n log4j.logger.org.apache.activemq.spring=WARN #see cache info log4j.logger.org.hibernate.cache=info
文章结束给大家分享下程序员的一些笑话语录: 开发时间
项目经理: 如果我再给你一个人,那可以什么时候可以完工?程序员: 3个月吧!项目经理: 那给两个呢?程序员: 1个月吧!
项目经理: 那100呢?程序员: 1年吧!
项目经理: 那10000呢?程序员: 那我将永远无法完成任务.