2012-04-27 25 views
1

私はコンソールに何も出力しないJava EE Webアプリケーションで作業しています。これはlog4jを使用し、log4j.propertiesファイルはstdoutに出力するように設定されています。ただし、機能していないため、コンソールにログが表示されません。 System.outでもコンソールに表示されないことが判明しました。何が原因でしょうか?Javaがコンソールに書き込まれない

私はMyEclipse 10.1、log4j-1.2.11、tomcat 5.5.35、java 1.6.0_31を実行しています。要求ごと

、ここに私の.propertiesファイルです:

### direct log messages to stdout ### 
# Configure Root Logger 
log4j.rootLogger = DEBUG, stdout 
log4j.logger.org.hibernate = DEBUG, stdout 
#log4j.logger.org.springframework = ERROR, stdout 

# Configure stdout Appender 
log4j.appender.stdout = org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern =%d [%t] %-5p %c - %m%n 

ハンドラログイン:私は開始と停止するのMyEclipseを使用

public class LogHandler { 
private static Logger sLog = Logger.getLogger(LogHandler.class); 
public LogHandler(){ 

} 
public void info_toLOG(String msg00) { 
    sLog.info("\n" + msg00 + "\n"); 
} 

public void error_toLOG(Exception e) { 
    sLog.error("\n" + e.getClass() + "\n" 
      + e.getCause() + "\n" 
      + e.getMessage() + "\n" 
      + e.getLocalizedMessage() + "\n" 
      + e.getStackTrace().toString() + "\n"); 
} 

public void warning_toLOG(String msg00) { 
    sLog.warn("\n" + msg00 + "\n"); 
} 

}

が。ちょうど私のtomcatのインストールディレクトリをポイントします。 MyEclipseのは、以下のVMの引数を追加しました:

-Dcatalina.home="<tomcat dir>" 
-Dcatalina.base="<tomcat dir> " 
-Djava.endorsed.dirs="<tomcat dir>/common/endorsed" 
-Djava.io.tmpdir="<tomcat dir>/temp" 
-Djava.library.path=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin:"<tomcat dir>/bin" 
-Dsun.io.useCanonCaches=false 
-Xmx1024M 

EDIT: を手助けしようとした人たちに感謝します。元の質問には、Mac OS X 10.7.3を実行していると述べたはずです。 「ユーティリティー」 - >「Javaプリファレンス」 - >「詳細設定」 - >「Javaコンソール」の設定がありました。

+0

log4j設定(http://logging.apache.org/log4j/1.2/manual.html)は扱いにくいことがあります。典型的なセットアップでは、特定のカテゴリのログメッセージを処理するためのリスナーがあり、各リスナーはさまざまな宛先(log4jのものではなく、私の用語)に出力を出力できます。プロパティファイルと、ロギング操作を実行するJavaコードの例行を投稿できる場合は、問題の原因を指摘できます。 –

答えて

3

Tomcatでは、System.outとSystem.errはcatalina.outログファイルに移動します。そこにあなたの出力を確認してください。

UPDATE正確なlog4j構成をテストしただけで、出力がTomcat 7 Windowsのtomcat7-stdout.<date>.logに送信されたことを確認できます。

2012-04-27 15:59:47 Commons Daemon procrun stdout initialized 
2012-04-27 15:59:51,955 [http-apr-8080-exec-3] INFO org.apache.log4j.Logger - hey log 
blah 

このログファイル名はTomcatの5.5のために異なったものになり、それは、Linuxでcatalina.outであるべきであり、それはWindowsで別の名前を持っているでしょう(そうドキュメントは言う、私は知りません)。これは、コードで

Logger l = Logger.getLogger(Logger.class); 
l.info("hey log"); 
System.out.println("blah"); 

アップデート2 Eclipseの下では、出力のこのタイプは、あなたのWARファイルを構築し、上記を確認するために、スタンドアロンのTomcatにデプロイしてみてください、コンソールをEclipseに行く必要があります。

+0

ありがとうございますが、catalina.outファイルは表示されません。 – Ken

+0

あなたの '/logs'ディレクトリには何がありますか? Tomcatの以前のバージョンを考えているかもしれません。 – maksimov

+0

私のTomcat 7では、System.outは '/logs/tomcat7-stdoutになります。 .log'。 – maksimov

関連する問題