0

Tomcat にデプロイされている WAR ファイルとしてパッケージ化された Spring Web アプリケーションがあります。

Catalina.out ショー

log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
gen 29, 2013 11:37:04 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error listenerStart

これはおそらく、Spring または Hibernate の構成エラーです。しかし、listenerStartエラーの原因を見つけるには、log4j を有効にする必要があると思います。グーグルで調べてみると、log4j の警告は log4j の構成が不足していることが原因であることがわかりました。まだ構成していないため、これは確かです。

開発ログの最も適切な場所である catalina.out にエラーを記録するには、log4j をどのように構成しますか (構成ファイルをどこに配置し、何を入力すればよいでしょうか)。

4

2 に答える 2

0

log4j.xmlこのようなファイルを作成します

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
    <appender class="org.apache.log4j.ConsoleAppender" name="CONSOLE">
        <param value="INFO" name="Threshold"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param value="%d{DATE}\t%m%n" name="ConversionPattern"/>
        </layout>
    </appender>
    <!-- Here you create additional logger for your application, ie:
    <logger name="package.xxx">
         <level value="info" />
    </logger>
    -->
    <logger name="rootLogger">
        <level value="info"/>
        <appender-ref ref="CONSOLE"/>
    </logger>
</log4j:configuration>

この構成ファイルの基本的な説明は次のとおりです。

  1. appender:複数のアペンダーを定義できます。私が設定したアペンダーはと呼ばCONSOLEConsoleAppender、標準出力に書き込むことを意味します(Tomcat環境ではcatalina.out)。
  2. layoutログファイルのレイアウトの定義です。PatternLayoutを見て、私が書いたものの意味を理解し、ニーズに合わせて変更してください。
  3. logger、アプリケーションに1つ以上のロガーを定義します。ここではrootLogger、デフォルトレベル でを定義し、アペンダーinfoを使用します。CONSOLE

このファイルをクラスパスの任意の場所に配置すると、log4jが構成されます。完全なチュートリアルについては、http://logging.apache.org/log4j/1.2/manual.htmlを参照してください。

編集私はあなたの質問をもう一度読みました、私はあなたが次のような春のものを記録するために2番目のロガーを追加することをお勧めします

<logger name="org.springframework">
    <level value="info"/>
</logger>

ここで、レベルをSpringメッセージに必要なきめの細かいものに設定します。完全なチュートリアルではレベルを非常に明確に説明しますが、要するに、レベルが高いほど、ログの冗長性は低くなります。

于 2013-01-29T11:11:08.300 に答える
0

最も単純なアプローチ(ソース

src/main/webapp/WEB-INF/classesMavenレイアウトを検討する)またはWebContent/WEB-INF/classes(従来のEclipseレイアウトを検討する)logging.propertiesで、次のコンテンツを含むファイルを作成します。

org.apache.catalina.core.ContainerBase.[Catalina].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].handlers = java.util.logging.ConsoleHandler

次に、再デプロイして、目的のBOOMをオンにしますcatalina.out

于 2013-01-29T11:20:48.400 に答える