2

ソースから構築する必要のある大きなフレームワークをダウンロードしました。このプロジェクトはMavenビルド構造を使用しており、埋め込み桟橋で表示できるデモアプリケーションが含まれています。Mavenプラグインはこれらすべてを処理します。

ただし、デモアプリケーションを(mvn jetty:runを使用して)実行すると、何らかの理由でDEBUGレベルでのロギングがオンになり、アプリケーションが多くのステートメントのロギングにほとんどの時間を費やすため、実際には使用できません。応答性はほとんどゼロになります。

フレームワーク(geomajas 1.5.0)はSLF4Jを使用しているようですが、どこで構成されているのか、どこでオフにできるのかわかりません。

どんなアイデアでも大歓迎です...ありがとう!

更新: どうやら彼らはログバックを使用しています。構成ファイル(logback.xml)を見つけました。このファイルで、DEBUGレベルを編集して、ERRORに置き換えました。

変更が確実に反映されるように、プロジェクトをクリーンアップして再構築しました。しかし、問題は残っています!フォルダ内のlogback.xmlファイルを手動で確認したところ、target更新されました。しかし、私はまだログレコードを見ています!

アップデート2 私はWindows7を使用しています。

4

4 に答える 4

7

ロギングを無効にする最も簡単で直接的な方法は、NOPバインディングを使用することです。geomajas/geomajas-dojo-example/pom.xmlこれを行うには、ログの依存関係を次のように編集して変更します。

    <!-- logging dependencies, delegate all to slf4j and use logback -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.5.8</version>
    </dependency>
    <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-nop</artifactId>
       <version>1.5.8</version>
    </dependency>

そして実行しmvn jetty:runます。

于 2010-01-15T18:02:18.530 に答える
1

この slf4j マニュアル/概要http://www.slf4j.org/manual.htmlを見ると、slf4j NOP jar (slf4j-nop-1.5.10.jar) を使用してすべてのロギングをオフにできるようです。そのため、プロジェクトの WEB-INF/lib フォルダーにある現在の slf4j 実装 jar を見つけて、NOP jar に置き換える必要があるでしょう。

ほとんどの場合、log4j 実装を使用していますが、その場合は、log4j.xml または log4j.properties を見つけて編集/削除する必要があります。ただし、見つけるのは難しい場合があります。最初に WEB-INF/classes を調べてから、何らかの構成ディレクトリを調べるとよいでしょう。

EDIT { 少し醜いですが、できるだけ早く起動して実行したい場合は、stdout と stderr を /dev/null にリダイレクトすることができます。これにより、ディスクやコンソールに書き込まれないため、少し速くなるはずです。

mvn jetty:run > dev/null 2>&1 }

HTH

于 2010-01-15T11:40:12.933 に答える
0

Geomajasは、サンプルアプリケーションにログバックを使用します。src / main / resourcesにあるlogback.xmlファイルを使用して、ログを構成できます。

すべてをオフに切り替えるには、次のような構成ファイルを使用します。

<configuration>
    <root>
        <level value="OFF"/>
    </root>
</configuration>

よろしく、ヨアキム

于 2010-08-14T19:32:06.687 に答える
0

log4j 構成 (ログに使用されている場合) を見つけようとします。これは、log4j.xml (または log4j.properties) ファイルである可能性があります。このファイルをクラスパスから削除すると、ログはまったく記録されません。ログのレベルを下げたい場合は、このファイルのいくつかのロガー セクションをコメント アウトしてみてください。

<!--<logger name="org.hibernate">
    <level value="debug"/> 
    <appender-ref ref="hibernate-file"/>
</logger>-->

この例では、org.hibernate パッケージのクラスのログはありません。

于 2010-01-15T11:33:24.573 に答える