問題タブ [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.

0 投票する
1 に答える
284 参照

perl - log4perl への mysqldump 出力

log4perl を使用してすべてをファイルに記録する Perl スクリプトがあります。log4perl の設定は外部ファイルに保存されます。

このスクリプトは、qx を使用して mysqldump コマンドを実行します。mysqldump コマンドの出力は画面に出力されますが (STDERR を想定しています)、ログ ファイルには出力されません。

mysqldump (および画面に出力されるその他の stmt) の出力を log4perl ログ ファイルに送りたいと思います。

これに qx 以外のものを使用するか、log4perl の設定を変更する必要があるかどうかはわかりません。

注: このオンラインの例をいくつか見たことがありますが、それらはすべて log4perl easy-config を使用しています。

ここに log4perl 設定ファイルがあります -

これがperlスクリプトです-

スクリプトの出力は次のとおりです-

明確化 - 出力とは、mysqldump コマンドの stderr 出力を意味します。画面に表示される mysqldump コマンドのすべてのテキスト出力を log4perl ログ ファイルに送信する必要があります。

0 投票する
1 に答える
725 参照

linux - cpan経由でperlモジュールをインストールしました。しかし、どのように使用するのですか?

多くの問題の後、私はなんとかでcpan働くことができましたcygwin
私はしました: cpan[2]> i Log::Log4perlそしてそれはうまくいくようでした。つまり、何かをダウンロードしました:

だから今、私は次の簡単なスクリプトを持っています:

実行しようとすると、次のようになります。

Can't locate Log/Log4perl.pm in @INC

で検索し~/.cpanましLog4perl.pmたが、見つかりません。なんで?cpanインストールしていませんか?他に何かする必要がありますか?

0 投票する
1 に答える
1234 参照

perl - Log4perlでeasy_initを使用してログレベルを出力するには?

Log4perl のすべての行のログ レベルに関する情報が欠けていますeasy_init。いくつかの特別なレコードで失敗する大規模な移行スクリプトを実行しているため、WARNings とERRORsを grep する必要がありますが、INFOそれらを修正するには rmation コンテキストが必要です。

このコードの使用:

今、私はこの出力を得ます:

この情報は、呼び出すログ関数に既に含まれているため、ログ メッセージに追加したくありません。

でログレベルを追加する方法はeasy_init? 私は、「通常の」Log4perl を構成ファイル (たとえインラインで含まれていたとしても) を使用してかなり小さなスクリプトで初期化したくありませんeasy_init

0 投票する
1 に答える
173 参照

perl - Log4Perl を介して OutputDebugString をログに記録する方法

Log4Perl を使用してすべてのメッセージ/レベルを直接 OutputDebugString (Windows システム) に記録することは可能ですか?

既に log4perl を使用しているモジュールがいくつかありますが、すべてのログ メッセージが OutputDebugStrings である環境でこれらのモジュールを使用したいと考えています。この環境では、メッセージは DbgView で読み取られ、モジュールの出力も DbgView で読み取りたいと考えています。Log4Perl ログ ファイルを DbgView 出力とマージしたくありません。

次の perl コードを使用して、Perl から直接 OutputDebugStrings を記述します。

log4net.Appender.OutputDebugStringAppender を見つけました - Perl で同じことを達成するにはどうすればよいですか

前もって感謝します。

0 投票する
1 に答える
89 参照

perl - $@ の設定は eval と Log::Dispatch::Email で異なります

アプリケーションの 1 つで Log4perl を使用しLog::Dispatch::Email、sendmail の特別な処理が必要なため、から継承する独自のアペンダーを作成しました。このアペンダーは数年前から機能していましたが、今日、$@Log4perl を自分のアペンダーまたは単にそれ自体を使用するように構成すると、以前のように設定されない奇妙な動作を認識しましたLog::Dispatch::Email。以前は次の方法でエラーをキャッチしていました。

Log4perl 構成からメール アペンダーを削除し、アプリケーションがメインで停止すると$error、メッセージが取得され、代替内にログが記録されます。Log::Dispatch::Email問題は、この抽象基本クラスの独自の子孫を直接構成する$@と、上記のステートメントが空の文字列になり、以前と同じエラーが発生し、認識されなくなることです。のようなものを書くとeval {} or ... $@、適切に利用可能になり、保存できます。以下の作品:

$error2Log::Dispatch::Email何らかの方法で構成すると、常に空の文字列になります。もちろん、最初の例を使用し、以前は機能していたすべてのコードを 2 番目の例に変更したくはありません。

私の最初の例に何か問題がありますか? 私の観点からは、perldoc の eval について文書化されているように見え、電子メールのアペンダーなしで動作します。

メール アペンダーを使用する$@と、2 番目の例で Perl が設定する方法、タイミング、または設定内容が変化する理由を思いつきますか? 回避策はありますか?私はすでにソースを見てきましたがLog::Dispatch、私のコードに明らかに干渉しているものは見つかりませんでした。

ヒントをありがとう!

0 投票する
1 に答える
377 参照

perl - Log4perl を使用してユーザーごとのログ ファイルを作成することは可能ですか?

ログに Log4perl を使用するモジョリッシュな Web アプリがあります。これはマルチ ユーザー アプリケーションであり、複数のユーザーがアプリケーションにアクセスしている場合、ログ ファイル内のさまざまなスレッドをたどることが難しい場合があります。私がやりたいことは、各ユーザー (人口は 25 ユーザー未満) のアクティビティを個別のファイルに記録することです。例: ./log/userX.log ./log/userY.log など。

構成ファイルで次のようなものを使用することを考えました: log4perl.appender.MAIN.filename=sub { return get_user_filename(); ただし、ロガーは Mojolicious スタートアップ サブルーチンで定義されており、ユーザーは要求時までわかりません。

より有望と思われるもう 1 つのアイデアは、ユーザーのアペンダーを作成し、それをロガーに割り当てるブリッジ ルートを作成することです。その後、後で再利用する (または破棄して再作成する) ためにアペンダーをキャッシュすることができます。

私は2番目のオプションで遊んでいますが、以前にこれを試みたことがあり、その知恵を共有したい人がいれば、それを感謝します.

-- 更新 -- 私のブリッジ ルートでは、次のことを行っています。

ただし、次のエラーが発生します。

/tmp/user.log が作成されていますが、(長さゼロ) Log::Log4perl の最新の CPAN インストールです。何か案は?

0 投票する
0 に答える
68 参照

perl - Ubuntu サーバーでの Log4perl の問題

私は何年もの間、典型的なnginx / apacheセットアップで大規模なサイトを運営しており、すべての「ページ」はmod_perlです。最近まで、私は FreeBSD で実行していました。ハードウェアの交換後、および他の理由により、他の多くのサーバーで使用している Ubuntu (12.04.2 LTS) に移行することを余儀なくされたので、大したことはありません。ただし、現在ログに問題があります。何らかの理由で、Log4Perl を介してログに記録されなくなった「アクション」がますます増えています。以前のセットアップではこれは問題ではありませんでしたが、今ではログ エントリの 2 ~ 15% が "失われている" ようです。これは、データを同時にデータベースに記録することによってチェックおよび検証されます。

なぜこれが起こるのか、誰にも手がかりがありますか?大きなログ ファイルと ubuntu について知っておくべきことはありますか? (それほど大きくない、390 MB atm)? エラーログには何も記録されず、$log->info("ENTRY HERE") の後にデータベース ロギングが行われるため、スクリプトは明らかにクラッシュしません。しかし、私はそれらのENTRY HEREの多くを見逃しています:)問題のログインは、平均して1秒に約1回「ヒット」しますが、これは大きな問題になるとは思いませんか? 並行してログに書き込もうとする「プロセスが多すぎる」ため、ロックの問題が発生し、データ形式がファイルに追加されない可能性はありますか? このようなものに合わせて調整される可能性のある典型的なUbuntu設定はありますか?

どんな助けでも大歓迎です。

  • スピナー