??xml version="1.0" encoding="utf-8" standalone="yes"?>国产视频在线一区二区,亚洲一区三区,亚洲电影第1页http://www.aygfsteel.com/honeybee/category/27032.htmlzh-cnFri, 02 Nov 2007 16:29:19 GMTFri, 02 Nov 2007 16:29:19 GMT60Log4j配置备忘http://www.aygfsteel.com/honeybee/articles/157736.htmlsunsunFri, 02 Nov 2007 05:51:00 GMThttp://www.aygfsteel.com/honeybee/articles/157736.htmlhttp://www.aygfsteel.com/honeybee/comments/157736.htmlhttp://www.aygfsteel.com/honeybee/articles/157736.html#Feedback0http://www.aygfsteel.com/honeybee/comments/commentRss/157736.htmlhttp://www.aygfsteel.com/honeybee/services/trackbacks/157736.html.写这文章的目的

       本h用的Tomcat版本一直ؓTomcat5.0.28Q?/span>JDK1.5.0_09Q最q,改用?/span>Tomcat5.5之后Q发C一个奇怪的问题Q?/span>logs目录下不能生追t?/span>Web应用E序的日?/span>。到Apche上察看才知道原因Q原来是ZҎ开发者的癖好而进行的改变Q当你需要进行追t时Q要自己q行Log4j.properties配置。具体位|:http://tomcat.apache.org/tomcat-5.5-doc/logging.html

?/span>.文g下蝲

1.加蝲 log4j-1.2.8.jar  

Log4j.jar下蝲地址Q?/span>http://www.apache.org/dist/jakarta/log4j/jakarta-log4j-1.2.8.zip

       log4e.jar下蝲地址Q?/span>http://log4e.jayefem.de/index.php/Download

       说明Q?/span>log4e?/span>Eclipse?/span>log4j插gQ放入插件文件夹后重?/span>EclipseQ程序里右键卛_看到Log4E选项?/span>

2.在根路径配置log4j.propertiesQ参照下面的log4j配置代码

3.在需要记录日志的java文g、jsp或servlet中添加下面的记录日志代码

?/span>.基本说明

1.配置根LoggerQ其语法为:

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

      1)level 是日志记录的优先U?/span>

       log4j中有五logger

              FATAL 0

              ERROR 3

              WARN 4

              INFO 6

              DEBUG 7

       如果log4j.rootLogger=WARN, 则意味着只有WARN,ERROR,FATAL,被输出,DEBUG,INFO被屏蔽?/span>.

   2)appenderName是指定日志信息输出到哪个地斏V您可以同时指定多个输出目的地?/span>

       讄输出?/span>appenderName?/span>ConsoleAppender(控制?/span>)

       log4j.appender.appenderName=org.apache.log4j.ConsoleAppender

2.配置日志信息输出目的地AppenderQ?/span>

   1)基本语法Q?/span>

       #RollingFileAppender

       log4j.appender.R=org.apache.log4j.RollingFileAppender

              ......

       #ConsoleAppender

       log4j.appender.B1=org.apache.log4j.ConsoleAppender

              ......

      2)Log4j提供的appender有以下几U:

       # 应用于控制台: org.apache.log4j.ConsoleAppenderQ?/span>

       # 应用于文?/span>: org.apache.log4j.FileAppenderQ?/span>

       # 应用于每天生一个日志文?/span>: org.apache.log4j.DailyRollingFileAppenderQ?/span>

       (# 应用?/span>socket: org.apache.log4j.RollingFileAppender),

       # 应用于文件回?/span>: org.apache.log4j.RollingFileAppenderQ文件大到达指定尺寸的时候生一个新的文ӞQ?/span>

       # 应用于日志流格式: org.apache.log4j.WriterAppenderQ?/span>日志信息以格式发送到L指定的地方)Q?/span>

       # 应用?/span>Log Factor 5 Appender: org.apache.log4j.lf5.LF5AppenderQ?/span>

       # 应用于发送日志给邮g: org.apache.log4j.net.SMTPAppenderQ?/span>

       # 应用于数据库: org.apache.log4j.jdbc.JDBCAppender

3.配置日志信息的格式(布局Q:

1)基本语法Q?/span>

       #RollingFileAppender

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

       log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n

       ......

       #ConsoleAppender

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

       log4j.appender.B1.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%n

       ......

2)Log4j提供的layout有以下几U:

       org.apache.log4j.HTMLLayoutQ以HTML表格形式布局Q,

       org.apache.log4j.PatternLayoutQ可以灵zd指定布局模式Q,

       org.apache.log4j.SimpleLayoutQ包含日志信息的U别和信息字W串Q,

       org.apache.log4j.TTCCLayoutQ包含日志生的旉、线E、类别等{信息)

4.配置文g大小:

       log4j.appender.R.MaxFileSize=500KB

       log4j.appender.R.MaxBackupIndex=1

5.常用输出格式

   1) -X?/span>:X信息输出时左寚wQ?/span>

       2) %p:日志信息U别

       3) %d{}:日志信息产生旉

       4) %c:日志信息所在地Q类名)

       5) %m:产生的日志具体信?/span>

       6) %n:输出日志信息换行

?/span>: log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n

对应Log文g: 2007-11-02 10:38:14,735 [org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/sshfile]]-[INFO] Initializing Spring root WebApplicationContext

?/span>.举例说明:

1基本例子:

       log4j.rootLogger=INFO,R //配置?/span>Logger,其优先?/span>INFO,指定到单一输出目的R?/span>.

       #RollingFileAppender          

       log4j.appender.R=org.apache.log4j.RollingFileAppender    //应用于文件回?/span>

       log4j.appender.Threshold=INFO          //配置文g回滚优先UؓINFO

       log4j.appender.R.File=F:/Program Files/Java/Tomcat 5.5/logs/logs_tomcat.log    //日志输出路径

       log4j.appender.R.MaxFileSize=100KB     //配置文g大小

       log4j.appender.R.MaxBackupIndex=1

       log4j.appender.R.layout=org.apache.log4j.PatternLayout      //灉|地指定布局模式

       log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n //配置输出形式,包括{日志日期} [所在位|?/span>]-[U别] 产生具体信息q换?/span>

       #ConsoleAppender

       log4j.appender.B1=org.apache.log4j.ConsoleAppender       //应用于控制台

       log4j.appender.Threshold=DEBUG      /配置文g回滚优先UؓDEBUG

       log4j.appender.B1.layout=org.apache.log4j.PatternLayout   //灉|地指定布局模式

       log4j.appender.B1.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%n

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

2关于Log4j比较全面的配|?/span>

       LOG4J的配|之单它遍及于来多的应用中了:Log4J配置文g实现了输出到控制台、文件、回滚文件、发送日志邮件、输出到数据库日志表、自定义标签{全套功能。择其一二用就够用了,

       log4j.rootLogger=DEBUG,CONSOLE,A1,im

       log4j.addivity.org.apache=true

       # 应用于控制台

       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

       #应用于文?/span>

       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

       # 用于每天产生一个日志文?/span>

       log4j.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

       # Use this layout for LogFactor 5 analysis

       # 应用于文件回?/span>

       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

       #应用?/span>socket

       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

       # 发送日志给邮g

       log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender

       log4j.appender.MAIL.Threshold=FATAL

       log4j.appender.MAIL.BufferSize=10

       log4j.appender.MAIL.From=xxx@www.xxx.com

       log4j.appender.MAIL.SMTPHost=www.wusetu.com

       log4j.appender.MAIL.Subject=Log4J Message

       log4j.appender.MAIL.To=xxx@www.xxx.com

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

       log4j.appender.MAIL.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

       # 用于数据?/span>

       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%n

       输出?/span>2000NT日志

?/span>Log4j压羃包里?/span>NTEventLogAppender.dll拷到WINNT"SYSTEM32目录?/span>

       log4j.logger.NTlog=FATAL, A8

       # APPENDER A8

       log4j.appender.A8=org.apache.log4j.nt.NTEventLogAppender

log4j.appender.A8.Source=JavaTest

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

log4j.appender.A8.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%n

       #自定?/span>Appender

       log4j.appender.im = net.cybercorlin.util.logger.appender.IMAppender

       log4j.appender.im.host = mail.cybercorlin.net

       log4j.appender.im.username = username

       log4j.appender.im.password = password

       log4j.appender.im.recipient = xxx@xxx.net

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

       log4j.appender.im.layout.ConversionPattern =[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

?/span>.参考:

1 log4j.xml配置

       本文是对log4j.properties配置的ȝQ常?/span>log4j配置Q一般可以采用两U方式:.properties?/span>.xml,对于.xml的配|,参考如下例子:

       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.david.all" class="org.apache.log4j.RollingFileAppender">  

        <!-- 讄通道ID:com.david.all和输出方式:org.apache.log4j.RollingFileAppender -->

               <param name="File" value="F:/Program Files/Java/Tomcat 5.5/logs/all.log" /><!-- File参数Q日志输出文件名 -->

               <param name="Append" value="false" /><!-- 讄是否在重新启动服务时Q在原有日志的基d新日?/span> -->

               <param name="MaxBackupIndex" value="10" />

               <layout class="org.apache.log4j.PatternLayout">

                      <param name="ConversionPattern" value="%p (%c:%L)- %m%n" /><!-- 讄输出文g目和格?/span> -->

               </layout>

          </appender>

         

          <appender name="com.david.sun" class="org.apache.log4j.RollingFileAppender">

               <param name="File" value="F:/Program Files/Java/Tomcat 5.5/logs/david.log" />

               <param name="Append" value="true" />

                <param name="MaxFileSize" value="10240" /> <!-- 讄文g大小 -->

               <param name="MaxBackupIndex" value="10" />

               <layout class="org.apache.log4j.PatternLayout">

                      <param name="ConversionPattern" value="%p (%c:%L)- %m%n" />

               </layout>

          </appender>

         

          <logger name="david.log"> <!-- 讄域名限制Q即david.log域及以下的日志均输出C面对应的通道?/span> -->

               <level value="debug" /><!-- 讄U别 -->

               <appender-ref ref="com.david.sun" /><!-- 与前面的通道id相对?/span> -->

          </logger>

         

          <root> <!-- 讄接收所有输出的通道 -->

               <appender-ref ref="com.david.all" /><!-- 与前面的通道id相对?/span> -->

          </root>

       </log4j:configuration>

2 Logging in Tomcat

Introduction

Tomcat 5.5 uses Commons Logging throughout its internal code allowing the developer to choose a logging configuration that suits their needs, e.g java.util.logging or Log4J. Commons Logging provides Tomcat the ability to log hierarchially across various log levels without needing to rely on a particular logging implementation.

An important consequence for Tomcat 5.5 is that the <Logger> element found in previous versions to create a localhost_log is no longer a valid nested element of <Context>. Instead, the default Tomcat configuration will use java.util.logging. If the developer wishes to collect detailed internal Tomcat logging (i.e what is happening within the Tomcat engine), then they should configure a logging system such as java.util.logging or log4j as detailed next.

log4j

Tomcat 5.5 has done away with localhost_log which you may be familiar with as the runtime exception/stack trace log. These types of error are usually thrown by uncaught exceptions, but are still valuable to the developer. They can now be found in the stdout log.

If you need to setup cross-context detailed logging from within Tomcat's code, then you can use a simple log4j configuration. Note that this logging van be very verbose depending on the log level you chose to use. Note also that a log4j logging configuration is not going to produce stack trace type logging: those stack traces are output to stdout as discussed above.

Follow the following steps to setup a file named tomcat.log that has internal Tomcat logging output to it:

1.     Create a file called log4j.properties with the following content and save it into common/classes.

            log4j.rootLogger=DEBUG, R

            log4j.appender.R=org.apache.log4j.RollingFileAppender

            log4j.appender.R.File=${catalina.home}/logs/tomcat.log

            log4j.appender.R.MaxFileSize=10MB

            log4j.appender.R.MaxBackupIndex=10

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

            log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n

         

2.     Download Log4J (v1.2 or later) and place the log4j jar in $CATALINA_HOME/common/lib.

3.     Download Commons Logging and place the commons-logging.jar (not commons-logging-api.jar) in $CATALINA_HOME/common/lib with the log4j jar.

4.     Start Tomcat

This log4j configuration sets up a file called tomcat.log in your Tomcat logs folder with a maximum file size of 10MB and up to 10 backups. DEBUG level is specified which will result in the most verbose output from Tomcat.

You can (and should) be more picky about which packages to include in the logging. Tomcat 5.5 uses defines loggers by Engine and Host names. For example, for a default Catalina localhost log, add this to the end of the log4j.properties above. Note that there are known issues with using this naming convention (with square brackets) in log4j XML based configuration files, so we recommend you use a properties file as described until a future version of log4j allows this convention.

·   log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost]=DEBUG, R

·   log4j.logger.org.apache.catalina.core=DEBUG, R

·   log4j.logger.org.apache.catalina.session=DEBUG, R

Be warned a level of DEBUG will produce megabytes of logging and slow startup of Tomcat. This level should be used sparingly when debugging of internal Tomcat operations is required.

Your web applications should certainly use their own log4j configuration. This is valid with the above configuration. You would place a similar log4j.properties file in your web application's WEB-INF/classes folder, and log4j1.2.8.jar into WEB-INF/lib. Then specify your package level logging. This is a basic setup of log4j which does *not* require Commons-Logging, and you should consult the log4j documentation for more options. This page is intended only as a bootstrapping guide.



sun 2007-11-02 13:51 发表评论
]]>
վ֩ģ壺 | | | ̨| | | | ں| | | | ׶| | | Ϫ| Ѱ| ƽ| ȫ| | ͤ| ؼ| ɾ| ̨| | ͬ| | | | | ̫| | ƽ| կ| | | | | ɫ| Ǽ| ƺ| |