0

Glassfish V3.1で実行されているアプリケーションにコモンズログを使用しています(Glassfishは初めてです)。Glassfishの../domain1フォルダー(開発者のマシン)でさまざまなアプリケーションを実行しています。XMLを使用してLoggingを構成しています。以下は私のxml構成です

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd" >
<log4j:configuration>
    <appender name="file"
        class="org.apache.log4j.RollingFileAppender">
        <param name="maxFileSize" value="100KB" />
        <param name="maxBackupIndex" value="5" />
        <param name="File" value="/home/phanikumar/Desktop/debug.log" />
        <param name="threshold" value="debug"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern"
                value="%d{DATE} %5p %c{1}:%L - %m%n" />
        </layout>
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="LevelMin" value="warn" />
            <param name="LevelMax" value="fatal" />
        </filter>

    </appender>
     <logger name="com">
        <level value="DEBUG" />     
        <appender-ref ref="file"/>
    </logger>

    <root>

        <appender-ref ref="file" />

    </root>
</log4j:configuration>

この設定ファイルでは、ファイルが特定の場所にあることを明示的に示していますが、実際にはそうではありませんでした。ロガーファイルに問題はありますか?何かが足りませんか?

また

ログを特定の場所に配置するように構成する方法はありますか?server.logファイルを見ましたが、すべてのアプリケーションのログが同じファイルに記録されているため、要件に適していません。

親切に助けてください。

4

1 に答える 1

1

解決

クラスパスにcommons-logging.propertiesという名前のプロパティファイルを追加します。

そして、次のプロパティを追加します

org.apache.commons.logging.Log = org.apache.commons.logging.impl.Log4JLogger

これにより、LoggingがLog4jLoggerに初期化されます

その後、それは完全に動作します。

編集:
通常、デフォルトのコモンズロギングはlog4jのようなロガーを検索します。上記の解決策が機能しない場合は、commons-logging jarファイルが破損していないかどうかを確認する必要があります。つまり、org.apache.commons.logging.impl.Log4jLoggerなどのクラスファイルが存在するかどうかを確認します。

于 2011-10-24T11:48:59.320 に答える