2017-12-08 17 views
0

Eclipseのコンソールでは、Tomcatサーバーの起動ログしか見ることができませんが、それ以外の場合はアプリケーションのsystem.out.print()が表示されず、デバッグが困難になります。EclipseのTomcatコンソール出力:私のSystem.out.print()出力はどこにありますか?デバッグ方法は?

私のsystem.out.print()をコンソールに戻すためにEclipseでどのような設定を変更できますか?

+0

私はlog4jを設定し、そのように出力を制御することをお勧めします。 tomcat 'conf'ディレクトリにlog4j.configure.propertiesを追加します。コンソール上のデータを見ることができるようにコンソールアペンダーをセットアップします。このアプローチが好きな場合は、答えに必要な場合はさらに詳しい情報を提供できます。 – sagneta

+0

お返事ありがとう、 – Tlink

答えて

2

[OK]を最良の方法は、常にロガーを使用することであり、私の推奨ツールはlog4jです。

まず、log4j.propertiesファイルを作成してロガーを構成します。

# Set root category priority to INFO and its only appender to CONSOLE. 
log4j.rootCategory=INFO, CONSOLE, LOGFILE 

# CONSOLE is set to be a ConsoleAppender using a PatternLayout. 
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender 
log4j.appender.CONSOLE.Threshold=INFO 
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout 
log4j.appender.CONSOLE.layout.ConversionPattern=- %m%n 

この設定では、情報と上記のメッセージがコンソールに送信されます。 log4j.propertiesを初期化する方法と、log4j jarライブラリをどのように参照するかは、アプリケーションのデプロイ方法によって異なります。

stackoverflowの上の設定のための良い参考はここにある:Where should I put the log4j.properties file?

のlog4jの使用上の良い参照はここにある:http://www.codejava.net/coding/how-to-configure-log4j-as-logging-mechanism-in-java

あなたは複数の方法で設定することもできます。あなたの呼び出しです。今すぐクラスファイルでロガーを初期化してください:

public class MyClass { 
    private static final Logger log = Logger.getLogger(MyClass.class); 

    .... 

    log.info("A log message to the console!!!!"); 

これは本当です。今あなたは完全なコントロールを持っています。ほとんどの場合、ロガーを使用して一般的な出力を制御するのが最善です。 System.XXX.printlnは中央設定で制御することができず、後で削除することを忘れてしまいます。また、あなたはそうのような出力を永続化するために、追加のアペンダを追加することができます。

# LOGFILE is set to be a File appender using a PatternLayout. 
log4j.appender.LOGFILE=org.apache.log4j.RollingFileAppender 
log4j.appender.LOGFILE.Threshold=INFO 
log4j.appender.LOGFILE.MaxFileSize=5MB 
log4j.appender.LOGFILE.File=mylogfile.log 
log4j.appender.LOGFILE.Append=true 
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout 
log4j.appender.LOGFILE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p [%c]: %m%n 

これはmylogfile.logを生成し、5メガバイト最大でファイルを保持し、追加のタイムスタンプで数(デフォルトを忘れる)バージョンを保持します。

私は役立つことを願っています。 log4jは永遠に残っており、優れています。スティックを振るよりも多くのチュートリアルがWeb上にあります。

1

これは正しい習慣ではありませんが、コンソールで値を取得する代わりに、スイッチとしてSystem.err.println()に切り替えることができます。適切なアプローチは、log4jのようなロガーをコメントで指摘されているように使用することです。

+0

おかげで、このトリックショットを与えるでしょう – Tlink

+0

それは働いたのですか? –

+0

System.out.print()をSystem.err.print()に変更しましたが、私の場合は役に立たなかった。 – Tlink

関連する問題