3

コンソール アプリからイベント ログに書き込もうとすると、このエラー メッセージが表示され続けます。これが私がそれに書く方法です

public static void WriteToEventLog(Exception ex)
    {
        string mySource = "Export Task";
        if (!EventLog.SourceExists(mySource))
            EventLog.CreateEventSource(mySource, "Application");

        EventLog myLog = new EventLog();
        myLog.Source = mySource;

        myLog.WriteEntry(ex.ToString());

    }

なぜこれが起こっているのか、どうすれば修正できるのか誰か知っていますか?

4

7 に答える 7

12

私には次のように聞こえます:

  • イベントログがいっぱいになったために発生しています。
  • イベント ログを空にして修正します。

そうでない場合は、質問を編集して、イベント ログがいっぱいではないと考えていることと、この結論に至った経緯を明確にしてください。

于 2009-08-19T14:11:17.160 に答える
9

Visual C# 2010 Express を使用して Windows XP で同じエラーが発生しましたが、これがうまくいきました。

[スタート] -> [コントロール パネル] -> [管理ツール] -> [イベント ビューアー] に移動します。

次に、[アクション] -> [プロパティ] を選択し、[必要に応じてイベントを上書きする] を選択します。

ログの最大サイズを増やすこともできます。

于 2012-12-13T20:45:46.983 に答える
6

イベント ビューアを開くと、問題のイベント ログを右クリックして [プロパティ] を選択すると、イベント ログのサイズが表示されます。大きくするか、その下のオプションを変更して、「必要に応じてイベントを上書きする」と言うことができます。

于 2009-08-19T14:22:48.877 に答える
3

最も可能性の高いシナリオは、通常、マシン上のほぼすべてのアプリによって書き込まれるデフォルトのアプリケーション ログを使用していることです (作成したものと同じです)。時間の経過とともにイベント ログがいっぱいになり、最大値に達する

したがって、「アプリケーション」ログを再利用するのではなく、新しいカスタム イベント ログを作成することをお勧めします。そうすれば、この例外 (これは有効なケースです) をキャッチし、EventLog.Clearを呼び出してイベント書き込み操作を再試行することで処理できます。また、イベント ログがあふれていないかどうかを確認し、責任を持ってログに記録してください。

一方、アプリケーション ログのイベント ログ プロパティを変更することもできます。(イベント ビューア、アプリケーション ログ ノードのプロパティを表示) - ログの最大サイズ (512 KB) と、最大サイズに達したときに 7 日より古いエントリを上書きするなどのラップの処理方法を指定できます。(これは私の WinXP マシンのデフォルトのようです)。しかし、すべてのマシンでこれを行う必要があります...しかし、それはあなたが試すことができるものです

于 2009-08-19T14:21:59.813 に答える
2

カスタム イベント ログ ソースのデフォルト サイズは 512k です。これは私を数回噛みました。これをオーバーライドして、より適切なサイズにすることができます (特に、デバッグ目的で情報のログを書き込んでいる場合)。

于 2009-08-19T14:21:07.053 に答える
0

次のコードを試しましたか?

log.ModifyOverflowPolicy(OverflowAction.OverwriteAsNeeded, log.MinimumRetentionDays);
于 2013-01-23T12:50:34.420 に答える