問題タブ [log4perl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
perl - バックグラウンドで実行されている単一の perl スクリプトは、Log4Perl の複数のインスタンスを保持できますか?
バックグラウンドで実行され、Log4Perl を使用して自己ログ記録するスクリプト「server.pl」があります。
このスクリプトは、ディレクトリを継続的に読み取り、Linux::Inotify2 モジュールで作成された新しいファイルを検出します。
検出された各ファイルは、実行されるパイプラインであり、独自のログファイルに書き込む必要がある Storable オブジェクトです。私の問題は、パイプラインのロガーを初期化するために Log4Perl::init を呼び出すと、新しい初期化によって以前の初期化が上書きされたため、server.pl 自体がログに記録されなくなることです。問題は、「server.pl」スクリプトに Log4Perl の複数のインスタンス (事前に未定義の数) を保持させるにはどうすればよいかということです。
以下は、'server.pl' の切り詰められたバージョンです (退屈なものはありません)。
編集:グローバルに、これは、スクリプトレベルでのみ定義されたロガーではなく、各インスタンスに応じてロガーが必要になることを意味します。何か案は ?ありがとう
perl - Log4perl フィルターはマップされた診断コンテキストにアクセスできますか?
私はいくつかの Perl CGI スクリプトを書いており、Log4perlを使用してさまざまなファイルにログを記録しています。特定の (またはさまざまな) ユーザーのアクティビティを別のログ ファイルに追跡できると便利だと思いました。セッション ルーチンにフックを挿入して、ユーザー ID をMDCに詰め込むことはできますが、フィルターから MDC にアクセスする方法がわかりません。私の知る限り、MDC はパターン作成にのみ使用されます。
これは Log4perl で実行できますか?
以下の提案に従って、構成ファイルにフィルターを追加しましたが、まだ機能していません。
セッション ルックアップを実行するとすぐにユーザー ID を入力しますが、appUser.log ファイルが作成されることはありません。私が見ることができるエラーは表示されません。
perl - Perl での解析のヘルプ
私の (既存の) perl ファイルは、次の形式で Log4Perl を使用してログ ファイルを作成します。
上記は私のログファイルのほんの一例です。次のフォーマッタを使用します
現在、エラーが発生した場合に備えてメールを送信する必要があります。
既存のスクリプトを変更する代わりに、生成されたログ ファイルをエラーのみ解析し、ログ ファイルから「エラー」に関連するすべてのメッセージを電子メールとして送信することを考えました。
ログファイルを解析する簡単な方法はありますか?
よろしく、
カーシック
perl - Perl Log4perl 行で同時に印刷とロギング
私はこれを読んでいて、混乱して立ち往生しています。
印刷とファイルへのログインを同時に行うには、ALWAYS
または両方を使用する必要がありますか?print_portfolio('themessage')
私がしたいこと:
それ以外の:
perl - Log4perl タイムスタンプのタイムゾーンを変更するにはどうすればよいですか
私のWebサーバーは私のものとは異なるタイムゾーンにあり、Log4perl構成でこのパターンレイアウトを使用しています:
%d は、サーバーのタイムゾーンで日付/時刻を生成します。代わりに、ローカルタイムゾーンで日付/時刻を記録するにはどうすればよいですか?
私は次のことを認識しています。
日付/時刻が GMT で記録されますが、任意のタイムゾーンをサポートするドキュメントは見つかりませんでした。
perl - PerlでLog::Log4perlを使用しているときに、ログを記録する前にパターンを置き換えるにはどうすればよいですか?
ファイルにログオンする前に、ログメッセージのパターンを置き換えようとしています。ロガーはPerlモジュールを使用しLog::Log4perl
ます。このモジュールで使用できるフィルターオプションのみがあり、問題は解決していません。
実はこれがやりたいことです。"Testing the logger module"
私のログメッセージはとだとしましょう"Developing the logger module"
。メッセージ内の文字列'module'
をに置き換えたい。'package'
したがって、ログメッセージに文字列「module」がある場合は常に、ログに記録する前に「package」に置き換える必要があります。そして、ここでPerlの正規表現の検索/置換を使用したいと思います。これにより、さまざまなパターンを置換できます。
これは可能ですか?誰か助けてもらえますか?
前もって感謝します、
perl - Log4perl: プレフィックスのない同じ行の新しいメッセージ
各Log4perlメッセージは新しい行で始まります:
結果:
同じ行でプレフィックスなしで次のメッセージを取得するにはどうすればよいですか:
何か案は?
更新:
プログラムの進行状況バーを作成しようとしました。しかし、結果として、このプログレス バーはログではなく、画面上でのみ必要になります。
このようにして私はそうしました:
回答ありがとうございます。
perl - log4perl 用に DateFileAppender を構成する方法
ログファイルに日付が追加されてログファイルが自動的にローテーションされるように log4j を構成する方法を知っています。
log4perlで同じことを達成するにはどうすればよいですか?
log4Perl で同じ設定を試しましたが、ファイル名パラメータは必須のようです。どんな助けでも大歓迎です。
perl - log4perlによるログサイズの制限
log4perlで作成されるログファイルのサイズを制限したい。ログファイルが約100MBを超えないようにします。最後の100MB(またはその前後)のデータのみが必要です。理想的には、以前のデータを切り捨てて、最後のビットのみを保持します。Log :: Dispatch :: FileRotateモジュールを認識していますが、複数のログファイルが必要ないため、要件を完全には満たしていません。
これは可能ですか?
以下のインライン構成を含む完全なコード(useステートメントを除く):
perl - Log4Perl: 実行中のコードから使用されるロガー ファイルを変更するにはどうすればよいですか? (フォークの後)
perl で ETL プロセスをセットアップして、多数のファイルを処理し、それらをデータベースにロードします。
最近、パフォーマンス上の理由から、fork() 呼び出しと system("perl someOtherPerlProcess.pl $arg1 $arg2") への呼び出しを使用して、コードをマルチスレッドに設定しました。
最終的に、someOtherPerlProcess.pl の約 12 のインスタンスが異なる引数で実行され、これらのプロセスはそれぞれ、1 ディレクトリ分のファイル (データベース内の 1 つのテーブルに対応) を処理します。
アプリケーションの主な機能は動作しますが、ログの構成方法を理解するのに問題があります。
理想的には、すべての someOtherPerlProcess.pl が同じ $log_config 値を共有してロガーを初期化したいのですが、それぞれが作業中のディレクトリにログ ファイルを作成するようにします。
私はそれを行う方法を理解することができませんでした。また、これらの perl スクリプトを呼び出しているディレクトリに、すべてのログ メッセージを含むいくつかのファイル (ARRAY(0x260eec)、ARRAY(0x313f8) など) があることにも気付きました!
実行中のコードから log4perl.appender.A1.filename 値を変更する簡単な方法はありますか? または、使用するファイル名を動的に構成しますが、構成ファイルの他のすべての値を使用しますか?