簡體   English   中英

如何從Tomcat 6中的Web應用程序內部進行登錄

[英]How do I log from inside my web application in Tomcat 6

如何從Tomcat 6上部署的Web應用程序中進行登錄? 我應該在哪里期望記錄輸出(內部tomcat日志文件,還是會生成另一個日志文件)? 我看到了大量的文檔,但我很難找到上述問題的直接答案。 我應該在哪里看到日志記錄顯示(目前log4j沒有生成日志文件,並且它沒有顯示在我的控制台中)。 我正在嘗試關注http://www.laliluna.de/articles/log4j-tutorial.html

### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### file appender
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.maxFileSize=100KB
log4j.appender.file.maxBackupIndex=5
log4j.appender.file.File=test.log
log4j.appender.file.threshold=info
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

log4j.rootLogger=debug, stdout

在我的應用中,我定義了一個日志對象:

private static org.apache.log4j.Logger log = Logger.getLogger(MyClass.class);
log.error("LOGGING!");

謝謝您的幫助。

要嘗試的兩件事:

1:將test.log更改為/tmp/test.log,以便准確了解文件的位置。

2:將log4j.properties配置文件與log4j-1.2.15.jar文件一起放在apache-tomcat-6.0.x / lib目錄中。 並且在webapps / * / WEB-INF / lib中沒有任何log4j文件

這就是我這樣做的方式,它為我工作。 這是我的log4j.properties的一個有用的片段(如果你使用這個配置,請記得做一個mk / tmp / logs)

log4j.rootLogger=debug, root
log4j.appender.root=org.apache.log4j.FileAppender
log4j.appender.root.layout = org.apache.log4j.PatternLayout
log4j.appender.root.layout.conversionPattern = %d [%t] %-5p %c - %m%n
log4j.appender.root.file = /tmp/logs/root.log
log4j.appender.root.append = true

log4j.category.mside = DEBUG,msideAppender
log4j.category.javashare = DEBUG,msideAppender

log4j.additivity.mside = false
log4j.additivity.mside.msideAppender = false
log4j.additivity.javashare = false

#Define msideAppender.
log4j.appender.msideAppender = org.apache.log4j.RollingFileAppender
log4j.appender.msideAppender.MaxFileSize=10MB
log4j.appender.msideAppender.MaxBackupIndex=7
log4j.appender.msideAppender.file = /tmp/logs/mside.log
log4j.appender.msideAppender.layout = org.apache.log4j.PatternLayout
log4j.appender.msideAppender.layout.conversionPattern = %d [%t] %-5p %c - %m%n
log4j.appender.msideAppender.append = true

IIRC Tomcat v4 / v5將標准輸出發送到catalina.out文件,因此使用控制台appender的任何log4j輸出也會轉到該文件。 不過,不確定這是否仍然適用於較新版本的Tomcat。

如果將log4j配置放入Web應用程序的類路徑中,例如在WEB-INF / classes /中,log4j配置將被log4j選中。 確保您的log4j.jar位於WEB-INF / lib中。

您定義的ConsoleAppender的輸出(登錄stdout)將作為任何Tomcat標准輸出輸出到$ {CATALINA_BASE} /logs/catalina.out。

對於RollingFileAppender,您應該定義正確的路徑。 如果希望Web應用程序的日志顯示在Tomcat的日志目錄中,請將此appender的文件更改為:

log4j.appender.file.File=${catalina.base}/logs/test.log

順便說一句,使用系統屬性-Dlog4j.debug系統屬性。 應該告訴你log4j發送輸出的位置。

此外,如果您的tomcat安裝在* nix系統中,或者如果您在安裝了cygwin的Windows上運行,則可以使用find命令檢測在向Tomcat發送HTTP請求后立即更改的文件(您知道應該產生日志輸出)

cd <your tomcat install>    
ls -ltr `find . -type f -ls` | tail -10

這應該會顯示最近更新或更改的10個文件。 但是,如果您的應用中的文件中的文件名中包含空格,則無法使用。

我嘗試了以下方式,並確保它運作良好:

  1. 把你自己的log4j.properties放在路徑上;
  2. 然后在tomcat下更新你的catalina.sh,在下面添加類似的行:

    JAVA_OPTS = “ - Dlog4j.configuration =文件:$ {} yourownlog4jpath”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM