0

EventLogを使用して例外をログに記録しています。イベントログがいっぱいになるとチェックし、プログラムでエントリをXMLファイルに転送してから、イベントログをクリアするバックグラウンドスレッドがあります。

これは正常に機能しますが、実行する作業が多すぎるようです。現在のアプリケーションのログ記録に使用する.evtファイルをコピーしてから、イベントログをクリアする方がよいと思いました。

すべてのWindowsOSで動作するファイルの場所/パスを見つける方法はありますか?

使用することをお勧めします

Registry.LocalMachine.OpenSubKey("System\\CurrentControlSet\\Services\\EventLog\\" + e.Log);

しかし、私のアプリケーションログ名にはFileプロパティがありません。

4

1 に答える 1

2

今、どのようにアーカイブしていますか?たぶん、その方法はパフォーマンスを得るために改善することができます。

これが例です。

EventLogSession els = new EventLogSession();
els.ExportLogAndMessages("Security",             // Log Name to archive
                         PathType.LogName,       // Type of Log
                         "*",                    // Query selecting all events
                         "C:\\archivedLog.evtx", // Exported Log Path 
                         false,                  // Stop archive if query is invalid
                         CultureInfo.CurrentCulture);

または、ClearLog()メソッドを使用できます。

EventLogSession els = new EventLogSession();

// Clears all the events and archives them to the .evtx file
els.ClearLog("System",          //  Channel to Clear
             "c:\\myLog.evtx"); //  Backup File Path

詳細については、こちらをご覧ください。

イベントログのエクスポート、アーカイブ、およびクリア

于 2012-06-21T08:03:45.267 に答える