鏈漢鐢ㄧ殑Tomcat鐗堟湰涓鐩翠負Tomcat5.0.28錛?/span>JDK1.5.0_09錛夋渶榪戯紝鏀圭敤浜?/span>Tomcat5.5涔嬪悗錛屽彂鐜頒簡涓涓鎬殑闂錛?/span>logs鐩綍涓嬩笉鑳戒駭鐢熻拷韙?/span>Web搴旂敤紼嬪簭鐨勬棩蹇?/span>銆傚埌Apche涓婂療鐪嬫墠鐭ラ亾鍘熷洜錛氬師鏉ユ槸涓轟簡鏍規嵁寮鍙戣呯殑鐧栧ソ鑰岃繘琛岀殑鏀瑰彉錛屽綋浣犻渶瑕佽繘琛岃拷韙椂錛岃鑷繁榪涜Log4j.properties閰嶇疆銆傚叿浣撲綅緗細http://tomcat.apache.org/tomcat-5.5-doc/logging.html
Log4j.jar涓嬭澆鍦板潃錛?/span>http://www.apache.org/dist/jakarta/log4j/jakarta-log4j-1.2.8.zip
log4e.jar涓嬭澆鍦板潃錛?/span>http://log4e.jayefem.de/index.php/Download
璇存槑錛?/span>log4e涓?/span>Eclipse鐨?/span>log4j鎻掍歡錛屾斁鍏ユ彃浠舵枃浠跺す鍚庨噸璧?/span>Eclipse錛岀▼搴忛噷鍙抽敭鍗沖彲鐪嬪埌Log4E閫夐」銆?/span>
log4j.rootLogger = [ level ] , appenderName, appenderName, ...
log4j涓湁浜旂駭logger
FATAL 0
ERROR 3
WARN 4
INFO 6
DEBUG 7
濡傛灉log4j.rootLogger=WARN, 鍒欐剰鍛崇潃鍙湁WARN,ERROR,FATAL,琚緭鍑猴紝DEBUG,INFO灝嗚灞忚斀鎺?/span>.
璁劇疆杈撳嚭鍦?/span>appenderName涓?/span>ConsoleAppender(鎺у埗鍙?/span>)
log4j.appender.appenderName=org.apache.log4j.ConsoleAppender
#RollingFileAppender
log4j.appender.R=org.apache.log4j.RollingFileAppender
......
#ConsoleAppender
log4j.appender.B1=org.apache.log4j.ConsoleAppender
......
# 搴旂敤浜庢帶鍒跺彴: org.apache.log4j.ConsoleAppender錛?/span>
# 搴旂敤浜庢枃浠?/span>: org.apache.log4j.FileAppender錛?/span>
# 搴旂敤浜庢瘡澶╀駭鐢熶竴涓棩蹇楁枃浠?/span>: org.apache.log4j.DailyRollingFileAppender錛?/span>
(# 搴旂敤浜?/span>socket: org.apache.log4j.RollingFileAppender),
# 搴旂敤浜庢枃浠跺洖婊?/span>: org.apache.log4j.RollingFileAppender錛堟枃浠跺ぇ灝忓埌杈炬寚瀹氬昂瀵哥殑鏃跺欎駭鐢熶竴涓柊鐨勬枃浠訛級錛?/span>
# 搴旂敤浜庢棩蹇楁祦鏍煎紡: org.apache.log4j.WriterAppender錛?/span>灝嗘棩蹇椾俊鎭互嫻佹牸寮忓彂閫佸埌浠繪剰鎸囧畾鐨勫湴鏂癸級錛?/span>
# 搴旂敤浜?/span>Log Factor 5 Appender: org.apache.log4j.lf5.LF5Appender錛?/span>
# 搴旂敤浜庡彂閫佹棩蹇楃粰閭歡: org.apache.log4j.net.SMTPAppender錛?/span>
# 搴旂敤浜庢暟鎹簱: org.apache.log4j.jdbc.JDBCAppender
#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
......
org.apache.log4j.HTMLLayout錛堜互HTML琛ㄦ牸褰㈠紡甯冨眬錛夛紝
org.apache.log4j.PatternLayout錛堝彲浠ョ伒媧誨湴鎸囧畾甯冨眬妯″紡錛夛紝
org.apache.log4j.SimpleLayout錛堝寘鍚棩蹇椾俊鎭殑綰у埆鍜屼俊鎭瓧絎︿覆錛夛紝
org.apache.log4j.TTCCLayout錛堝寘鍚棩蹇椾駭鐢熺殑鏃墮棿銆佺嚎紼嬨佺被鍒瓑絳変俊鎭級
log4j.appender.R.MaxFileSize=500KB
log4j.appender.R.MaxBackupIndex=1
濡?/span>: log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n
瀵瑰簲Log鏂囦歡: 2007-11-02 10:38:14,735 [org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/sshfile]]-[INFO] Initializing Spring root WebApplicationContext
log4j.rootLogger=INFO,R //閰嶇疆鏍?/span>Logger,鍏朵紭鍏堢駭涓?/span>INFO,鎸囧畾鍒板崟涓杈撳嚭鐩殑R涓?/span>.
#RollingFileAppender
log4j.appender.R=org.apache.log4j.RollingFileAppender //搴旂敤浜庢枃浠跺洖婊?/span>
log4j.appender.Threshold=INFO //閰嶇疆鏂囦歡鍥炴粴浼樺厛綰т負INFO
log4j.appender.R.File=F:/Program Files/Java/Tomcat 5.5/logs/logs_tomcat.log //鏃ュ織杈撳嚭璺緞
log4j.appender.R.MaxFileSize=100KB //閰嶇疆鏂囦歡澶у皬
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>]-[綰у埆] 浜х敓鍏蜂綋淇℃伅騫舵崲琛?/span>
#ConsoleAppender
log4j.appender.B1=org.apache.log4j.ConsoleAppender //搴旂敤浜庢帶鍒跺彴
log4j.appender.Threshold=DEBUG /閰嶇疆鏂囦歡鍥炴粴浼樺厛綰т負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
LOG4J鐨勯厤緗箣綆鍗曚嬌瀹冮亶鍙婁簬瓚婃潵瓚婂鐨勫簲鐢ㄤ腑浜嗭細Log4J閰嶇疆鏂囦歡瀹炵幇浜嗚緭鍑哄埌鎺у埗鍙般佹枃浠躲佸洖婊氭枃浠躲佸彂閫佹棩蹇楅偖浠躲佽緭鍑哄埌鏁版嵁搴撴棩蹇楄〃銆佽嚜瀹氫箟鏍囩絳夊叏濂楀姛鑳姐傛嫨鍏朵竴浜屼嬌鐢ㄥ氨澶熺敤浜嗭紝
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
# 鍙戦佹棩蹇楃粰閭歡
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
鏈枃鏄log4j.properties閰嶇疆鐨勬葷粨錛屽父鐢?/span>log4j閰嶇疆錛屼竴鑸彲浠ラ噰鐢ㄤ袱縐嶆柟寮忥細.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鍙傛暟錛氭棩蹇楄緭鍑烘枃浠跺悕 -->
<param name="Append" value="false" /><!-- 璁劇疆鏄惁鍦ㄩ噸鏂板惎鍔ㄦ湇鍔℃椂錛屽湪鍘熸湁鏃ュ織鐨勫熀紜娣誨姞鏂版棩蹇?/span> -->
<param name="MaxBackupIndex" value="10" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%p (%c:%L)- %m%n" /><!-- 璁劇疆杈撳嚭鏂囦歡欏圭洰鍜屾牸寮?/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" /> <!-- 璁劇疆鏂囦歡澶у皬 -->
<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"> <!-- 璁劇疆鍩熷悕闄愬埗錛屽嵆david.log鍩熷強浠ヤ笅鐨勬棩蹇楀潎杈撳嚭鍒頒笅闈㈠搴旂殑閫氶亾涓?/span> -->
<level value="debug" /><!-- 璁劇疆綰у埆 -->
<appender-ref ref="com.david.sun" /><!-- 涓庡墠闈㈢殑閫氶亾id鐩稿搴?/span> -->
</logger>
<root> <!-- 璁劇疆鎺ユ敹鎵鏈夎緭鍑虹殑閫氶亾 -->
<appender-ref ref="com.david.all" /><!-- 涓庡墠闈㈢殑閫氶亾id鐩稿搴?/span> -->
</root>
</log4j:configuration>
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. |
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.
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. |