2

Linux ubuntuサーバーでkaraf 2.2.9を使用して、いくつかのコードを起動するkarafコマンドがあります。これにより、karaf.log に詳細な機能ログが生成されます。このコマンドは定期的に (2 時間ごとに) 実行されます。

各実行に対応するログを収集したいと考えています。

既に行っていること:
クライアント karaf を使用して次のことを行うスクリプト シェルがあります。

  1. log:clear を実行 ==> これにより、将来の log:display コマンドがこのマーカーの前に移動するのを防ぐマーカーが配置されます。
  2. コマンドを実行 ==> これにより、ログに内容が書き込まれます
  3. log:display -n 0 を実行 ==> これにより、前の log:clear と現在の間のログが取得されます
  4. 後で統計と分析を行うために、結果をファイルに書き込みます

これはすべて2時間ごとに繰り返されます。

出力を制限しすぎないように、karaf/etc/org.apache.karaf.log.cfg の「サイズ」パラメーターをより高い値に変更しました。

問題 :
出力が非常にリッチになる場合があります (もちろん、リッチになればなるほど、より重要になります!)。
そう :

  • 「サイズ」パラメータを低くしすぎると、log:display は必要なログをすべて取得しません。
  • 「サイズ」パラメーターを大きくしすぎると、karaf がメモリ不足でハングし
    ます。すでに karaf xmx メモリを増やしています。「ログ」コマンドに関するドキュメントは非常に貧弱です。実際、このログ システムがどのように機能するかについての説明はありません (または見つけられませんでした)。

私の質問:
log:clear と log:display の間でかなり快適な量のログを取得できるように、何かを増やす方法はありますか?

もちろん、ロギング方法やプログラムを完全に作り直すなど、他の解決策も考えられますが、すでに実行されているシステムに適切なパラメーターを見つけるよりもはるかに多くの費用がかかります。

4

1 に答える 1

2

Karafで使用されるデフォルトのログ サービスはops4j pax loggingです。

ファイル karaf/etc/org.ops4j.pax.logging.cfg を使用してロギング システムをセットアップできます。これは log4j のような構成ファイルです。ここでは、独自のアペンダーとロガーをセットアップしたり、ファイル サイズやバックアップ インデックスなどを調整したりできます。

このようにして、特定のログ情報をさまざまなログ ファイルに抽出できます。

于 2013-01-04T17:09:27.247 に答える