Log4j错误:log4j:WARN No appenders could be found - 开源软件当前位置:& &&&Log4j错误:log4j:WARN No appenders could be founLog4j错误:log4j:WARN No appenders could be found&&网友分享于:&&浏览:1次Log4j异常:log4j:WARN No appenders could be found
运行junittest时log4j警告
log4j:WARN No appenders could be found for logger (mons.httpclient.params.DefaultHttpParams).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
这是由于未在classpath下配置log4j文件,log4j配置如下:
log4j.rootCategory=DEBUG, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout.ConversionPattern=%t %p [%c] - %m%n
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.threshold=TRACE
log4j.logger.org.springframework.osgi=INFO
log4j.logger.org.springframework=INFO
#log4j.logger.org.apache.cxf.interceptor=INFO
附:log4j配置祥解
转自:http://www.blogjava.net/kit-soft/archive//292977.html
第一步:加入log4j-1.2.8.jar到lib下。第二步:在CLASSPATH下建立log4j.properties。内容如下:1 log4j.rootCategory=INFO, stdout , R23 log4j.appender.stdout=org.apache.log4j.ConsoleAppender4 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout5 log4j.appender.stdout.layout.ConversionPattern=[QC] %p [%t] %C.%M(%L) | %m%n67 log4j.appender.R=org.apache.log4j.DailyRollingFileAppender8 log4j.appender.R.File=D:\Tomcat 5.5\logs\qc.log9 log4j.appender.R.layout=org.apache.log4j.PatternLayout10 log4j.appender.R.layout.ConversionPattern=%d-[TS] %p %t %c - %m%n1112 .neusoft=DEBUG13 .opensymphony.oscache=ERROR14 log4j.logger.net.sf.navigator=ERROR15 log4j.logger.mons=ERROR16 log4j.logger.org.apache.struts=WARN17 log4j.logger.org.displaytag=ERROR18 log4j.logger.org.springframework=DEBUG19 .ibatis.db=WARN20 log4j.logger.org.apache.velocity=FATAL2122 .canoo.webtest=WARN2324 log4j.logger.org.hibernate.ps.PreparedStatementCache=WARN25 log4j.logger.org.hibernate=DEBUG26 log4j.logger.org.logicalcobwebs=WARN第三步:相应的修改其中属性,修改之前就必须知道这些都是干什么的,在第二部分讲解。第四步:在要输出日志的类中加入相关语句:定义属性:protected final Log log = LogFactory.getLog(getClass());在相应的方法中:if (log.isDebugEnabled()){log.debug(“System …..”);}二、Log4j说明1 log4j.rootCategory=INFO, stdout , R此句为将等级为INFO的日志信息输出到stdout和R这两个目的地,stdout和R的定义在下面的代码,可以任意起名。等级可分为OFF、 FATAL、ERROR、WARN、INFO、DEBUG、ALL,如果配置OFF则不打出任何信息,如果配置为INFO这样只显示INFO, WARN, ERROR的log信息,而DEBUG信息不会被显示,具体讲解可参照第三部分定义配置文件中的logger。3 log4j.appender.stdout=org.apache.log4j.ConsoleAppender此句为定义名为stdout的输出端是哪种类型,可以是org.apache.log4j.ConsoleAppender(控制台),org.apache.log4j.FileAppender(文件),org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)具体讲解可参照第三部分定义配置文件中的Appender。4 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout此句为定义名为stdout的输出端的layout是哪种类型,可以是org.apache.log4j.HTMLLayout(以HTML表格形式布局),org.apache.log4j.PatternLayout(可以灵活地指定布局模式),org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)具体讲解可参照第三部分定义配置文件中的Layout。5 log4j.appender.stdout.layout.ConversionPattern= [QC] %p [%t] %C.%M(%L) | %m%n如果使用pattern布局就要指定的打印信息的具体格式ConversionPattern,打印参数如下:%m 输出代码中指定的消息%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL%r 输出自应用启动到输出该log信息耗费的毫秒数%c 输出所属的类目,通常就是所在类的全名%t 输出产生该日志事件的线程名%n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy MMM dd HH:mm:ss,SSS},输出类似:日 22:10:28,921%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。[QC]是log信息的开头,可以为任意字符,一般为项目简称。输出的信息[TS] DEBUG [main] AbstractBeanFactory.getBean(189) | Returning cached instance of singleton bean 'MyAutoProxy'具体讲解可参照第三部分定义配置文件中的格式化日志信息。7 log4j.appender.R=org.apache.log4j.DailyRollingFileAppender此句与第3行一样。定义名为R的输出端的类型为每天产生一个日志文件。8 log4j.appender.R.File=D:\Tomcat 5.5\logs\qc.log此句为定义名为R的输出端的文件名为D:\Tomcat 5.5\logs\qc.log可以自行修改。9 log4j.appender.R.layout=org.apache.log4j.PatternLayout与第4行相同。10 log4j.appender.R.layout.ConversionPattern=%d-[TS] %p %t %c - %m%n与第5行相同。12 . neusoft =DEBUG指定com.neusoft包下的所有类的等级为DEBUG。可以把com.neusoft改为自己项目所用的包名。13 .opensymphony.oscache=ERROR14 log4j.logger.net.sf.navigator=ERROR这两句是把这两个包下出现的错误的等级设为ERROR,如果项目中没有配置EHCache,则不需要这两句。15 log4j.logger.mons=ERROR16 log4j.logger.org.apache.struts=WARN这两句是struts的包。17 log4j.logger.org.displaytag=ERROR这句是displaytag的包。(QC问题列表页面所用)18 log4j.logger.org.springframework=DEBUG此句为Spring的包。24 log4j.logger.org.hibernate.ps.PreparedStatementCache=WARN25 log4j.logger.org.hibernate=DEBUG此两句是hibernate的包。以上这些包的设置可根据项目的实际情况而自行定制。三、log4j详解1、定义配置文件Log4j支持两种配置文件格式,一种是XML格式的文件,一种是Java特性文件log4j.properties(键=值)。下面将介绍使用log4j.properties文件作为配置文件的方法:①、配置根LoggerLogger 负责处理日志记录的大部分操作。其语法为:log4j.rootLogger = [ level ] , appenderName, appenderName, …其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者自定义的级别。Log4j建议只使用四个级别,优 先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定 义了INFO级别,只有等于及高于这个级别的才进行处理,则应用程序中所有DEBUG级别的日志信息将不被打印出来。ALL:打印所有的日志,OFF:关 闭所有的日志输出。 appenderName就是指定日志信息输出到哪个地方。可同时指定多个输出目的地。②、配置日志信息输出目的地 AppenderAppender 负责控制日志记录操作的输出。其语法为:log4j.appender.appenderName = fully.qualified.name.of.appender.classlog4j.appender.appenderName.option1 = value1…log4j.appender.appenderName.optionN = valueN这里的appenderName为在①里定义的,可任意起名。其中,Log4j提供的appender有以下几种:org.apache.log4j.ConsoleAppender(控制台),org.apache.log4j.FileAppender(文件),org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),可通过 log4j.appender.R.MaxFileSize=100KB设置文件大小,还可通过 log4j.appender.R.MaxBackupIndex=1设置为保存一个备份文件。org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)例如:log4j.appender.stdout=org.apache.log4j.ConsoleAppender定义一个名为stdout的输出目的地,ConsoleAppender为控制台。③、配置日志信息的格式(布局)LayoutLayout 负责格式化Appender的输出。其语法为:log4j.appender.appenderName.layout = fully.qualified.name.of.layout.classlog4j.appender.appenderName.layout.option1 = value1…log4j.appender.appenderName.layout.optionN = valueN其中,Log4j提供的layout有以下几种:org.apache.log4j.HTMLLayout(以HTML表格形式布局),org.apache.log4j.PatternLayout(可以灵活地指定布局模式),org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)2、格式化日志信息Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,打印参数如下:%m 输出代码中指定的消息%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL%r 输出自应用启动到输出该log信息耗费的毫秒数%c 输出所属的类目,通常就是所在类的全名%t 输出产生该日志事件的线程名%n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy MMM dd HH:mm:ss,SSS},输出类似:日 22:10:28,921%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。3、在代码中使用Log4j我们在需要输出日志信息的类中做如下的三个工作:1、导入所有需的commongs-logging类:import mons.logging.Limport mons.logging.LogF2、在自己的类中定义一个mons.logging.Log类的私有静态类成员:private final Log log = LogFactory.getLog(getClass());LogFactory.getLog()方法的参数使用的是当前类的class。3、使用mons.logging.Log类的成员方法输出日志信息:if (log.isDebugEnabled()){log.debug("111");}if (log.isInfoEnabled()){<("222");}if (log.isWarnEnabled()){log.warn("333");}if (log.isErrorEnabled()){log.error("444");}if (log.isFatalEnabled()){log.fatal("555")}
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有trackbacks - 0
2011年11月
3031123456789101112131415161718192021232425262728293012345678910
log4j.properties中如果输出日志是html格式,配置log4j.appender.R.layout=com.zg.log4j.layout.HtmlLayout竟然没输出。后来发现tomcat日志中报错:log4j:ERROR Could not instantiate class [com.zg.log4j.layout.HtmlLayout].java.lang.ClassNotFoundException: com.zg.log4j.layout.HtmlLayout&&&&&&& at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645)&&&&&&& at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491)
所以在设置的时候改为& log4j.appender.R.layout=org.apache.log4j.PatternLayout就成功生成了html文件注意: log4j.rootLogger=INFO,Console,R&& 中要加R,而且& log4j.appender.R.layout设置成org.apache.log4j.PatternLayout
下面附带lig4j的详细配置信息,仅作为参考: Log4j简介Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局)。这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置。1、LoggersLoggers组件在此系统中被分为五个级别:DEBUG、INFO、WARN、ERROR和FATAL。这五个级别是有顺序的,DEBUG & INFO & WARN & ERROR & FATAL,分别用来指定这条日志信息的重要程度,明白这一点很重要,Log4j有一个规则:只输出级别不低于设定级别的日志信息,假设Loggers级别设定为INFO,则INFO、WARN、ERROR和FATAL级别的日志信息都会输出,而级别比INFO低的DEBUG则不会输出。2、Appenders禁用和使用日志请求只是Log4j的基本功能,Log4j日志系统还提供许多强大的功能,比如允许把日志输出到不同的地方,如控制台(Console)、文件(Files)等,可以根据天数或者文件大小产生新的文件,可以以流的形式发送到其它地方等等。常使用的类如下:org.apache.log4j.ConsoleAppender(控制台)org.apache.log4j.FileAppender(文件)org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)配置模式:log4j.appender.appenderName = classNamelog4j.appender.appenderName.Option1 = value1…log4j.appender.appenderName.OptionN = valueN3、Layouts有时用户希望根据自己的喜好格式化自己的日志输出,Log4j可以在Appenders的后面附加Layouts来完成这个功能。Layouts提供四种日志输出样式,如根据HTML样式、自由指定样式、包含日志级别与信息的样式和包含日志时间、线程、类别等信息的样式。常使用的类如下:org.apache.log4j.HTMLLayout(以HTML表格形式布局)org.apache.log4j.PatternLayout(可以灵活地指定布局模式)org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等信息)配置模式:log4j.appender.appenderName.layout =classNamelog4j.appender.appenderName.layout.Option1 = value1…log4j.appender.appenderName.layout.OptionN = valueN &一.参数意义说明输出级别的种类ERROR、WARN、INFO、DEBUGERROR 为严重错误 主要是程序的错误WARN 为一般警告,比如session丢失INFO 为一般要显示的信息,比如登录登出DEBUG 为程序的调试信息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,意谓着所有的消息都会被立即输出。配置日志信息输出目的地log4j.appender.appenderName = fully.qualified.name.of.appender.class1.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.class1.org.apache.log4j.HTMLLayout(以HTML表格形式布局),2.org.apache.log4j.PatternLayout(可以灵活地指定布局模式),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},输出类似:日 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字符,就从左边较远输出的字符截掉。二.文件配置Sample1log4j.rootLogger=DEBUG,A1,R#log4j.rootLogger=INFO,A1,R# ConsoleAppender 输出log4j.appender.A1=org.apache.log4j.ConsoleAppenderlog4j.appender.A1.layout=org.apache.log4j.PatternLayoutlog4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n# File 输出 一天一个文件,输出路径可以定制,一般在根路径下log4j.appender.R=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.R.File=blog_log.txtlog4j.appender.R.MaxFileSize=500KBlog4j.appender.R.MaxBackupIndex=10log4j.appender.R.layout=org.apache.log4j.PatternLayoutlog4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n文件配置Sample2下面给出的Log4J配置文件实现了输出到控制台,文件,回滚文件,发送日志邮件,输出到数据库日志表,自定义标签等***功能。log4j.rootLogger=DEBUG,CONSOLE,A1,im #DEBUG,CONSOLE,FILE,ROLLING_FILE,MAIL,DATABASElog4j.addivity.org.apache=true################### # Console Appender ################### 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##################### # File Appender ##################### 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######################## # Rolling File ######################## 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 Appender #################### 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######################## # SMTP Appender ####################### log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender log4j.appender.MAIL.Threshold=FATAL log4j.appender.MAIL.BufferSize=10 log4j.appender.MAIL.SMTPHost= log4j.appender.MAIL.Subject=Log4J Message log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout log4j.appender.MAIL.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n######################## # JDBC Appender ####################### 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%nlog4j.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################### #自定义Appender ################### log4j.appender.im = net.cybercorlin.util.logger.appender.IMAppenderlog4j.appender.im.host = mail.cybercorlin.net log4j.appender.im.username = username log4j.appender.im.password = password log4j.appender.im.recipient = log4j.appender.im.layout=org.apache.log4j.PatternLayout log4j.appender.im.layout.ConversionPattern =[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n三.高级使用实验目的:1.把FATAL级错误写入2000NT日志2. WARN,ERROR,FATAL级错误发送email通知管理员3.其他级别的错误直接在后台输出实验步骤:输出到2000NT日志1.把Log4j压缩包里的NTEventLogAppender.dll拷到WINNT\SYSTEM32目录下2.写配置文件log4j.properties# 在2000系统日志输出log4j.logger.NTlog=FATAL, A8# APPENDER A8log4j.appender.A8=org.apache.log4j.nt.NTEventLogAppenderlog4j.appender.A8.Source=JavaTestlog4j.appender.A8.layout=org.apache.log4j.PatternLayoutlog4j.appender.A8.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%n3.调用代码:Logger logger2 = Logger.getLogger("NTlog"); //要和配置文件中设置的名字相同logger2.debug("debug!!!");("info!!!");logger2.warn("warn!!!");logger2.error("error!!!");//只有这个错误才会写入2000日志logger2.fatal("fatal!!!");发送email通知管理员:1. 首先下载JavaMail和JAF, & & 在项目中引用mail.jar和activation.jar。2. 写配置文件# 将日志发送到emaillog4j.logger.MailLog=WARN,A5#& APPENDER A5log4j.appender.A5=org.apache.log4j.net.SMTPAppenderlog4j.appender.A5.BufferSize=5log4j.appender.A5.Subject=ErrorLoglog4j.appender.A5.SMTPHost=smtp.263.netlog4j.appender.A5.layout=org.apache.log4j.PatternLayoutlog4j.appender.A5.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%n3.调用代码://把日志发送到mailLogger logger3 = Logger.getLogger("MailLog");logger3.warn("warn!!!");logger3.error("error!!!");logger3.fatal("fatal!!!");在后台输出所有类别的错误:1. 写配置文件# 在后台输出log4j.logger.console=DEBUG, A1# APPENDER A1log4j.appender.A1=org.apache.log4j.ConsoleAppenderlog4j.appender.A1.layout=org.apache.log4j.PatternLayoutlog4j.appender.A1.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%n2.调用代码Logger logger1 = Logger.getLogger("console");logger1.debug("debug!!!");("info!!!");logger1.warn("warn!!!");logger1.error("error!!!");logger1.fatal("fatal!!!");--------------------------------------------------------------------全部配置文件:log4j.properties# 在后台输出log4j.logger.console=DEBUG, A1# APPENDER A1log4j.appender.A1=org.apache.log4j.ConsoleAppenderlog4j.appender.A1.layout=org.apache.log4j.PatternLayoutlog4j.appender.A1.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%n# 在2000系统日志输出log4j.logger.NTlog=FATAL, A8# APPENDER A8log4j.appender.A8=org.apache.log4j.nt.NTEventLogAppenderlog4j.appender.A8.Source=JavaTestlog4j.appender.A8.layout=org.apache.log4j.PatternLayoutlog4j.appender.A8.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%n# 将日志发送到emaillog4j.logger.MailLog=WARN,A5#& APPENDER A5log4j.appender.A5=org.apache.log4j.net.SMTPAppenderlog4j.appender.A5.BufferSize=5log4j.appender.A5.Subject=ErrorLoglog4j.appender.A5.SMTPHost=smtp.263.netlog4j.appender.A5.layout=org.apache.log4j.PatternLayoutlog4j.appender.A5.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%n全部代码:Log4jTest.java& /* & * 创建日期
& */ package edu.bcu.B import org.apache.log4j.*; //import org.apache.log4j.nt.*; //import org.apache.log4j.net.*; /** & * @author yanxu & */ public class Log4jTest { & public static void main(String args[]) & { && PropertyConfigurator.configure("log4j.properties"); && //在后台输出 && Logger logger1 = Logger.getLogger("console"); && logger1.debug("debug!!!"); && ("info!!!"); && logger1.warn("warn!!!"); && logger1.error("error!!!"); && logger1.fatal("fatal!!!");//在NT系统日志输出 && Logger logger2 = Logger.getLogger("NTlog"); && //NTEventLogAppender nla = new NTEventLogAppender(); && logger2.debug("debug!!!"); && ("info!!!"); && logger2.warn("warn!!!"); && logger2.error("error!!!"); && //只有这个错误才会写入2000日志 && logger2.fatal("fatal!!!");//把日志发送到mail && Logger logger3 = Logger.getLogger("MailLog"); && //SMTPAppender sa = new SMTPAppender(); && logger3.warn("warn!!!"); && logger3.error("error!!!"); && logger3.fatal("fatal!!!"); & } }
阅读(5346)