0

以下のaspnetdb_logファイルへのイベントログへの書き込みについて知っている人はいますか?これは、元のコード行を含むWebで見つけたコードの一部ですが、Log.LogException(..)が機能しないか、ライブラリがわかりません使用するために、EventLogを使用しました。私がやりたいのは、エラーまたはイベントをaspnetdb_logファイルに記録することです。コードは機能しますが、テストしていません。私は初期段階にあるため、誰かが修正できる場合は、返信を残してください。これはカスタムメンバーシッププロバイダー用です

private void WriteToEventLog(Exception e, string action)
{
    string message = action + "-" + e.Message;

    if (!EventLog.SourceExists("aspnetdb_log"))
    {
        EventLog.CreateEventSource("aspnetdb_log", "aspnetdb_log");
    }

    EventLog log = new EventLog();
    log.Source = "aspnetdb_log";
    log.WriteEntry(message, EventLogEntryType.Error);

    // original code doesn't work 
    // Log.LogException(message, e, LogCategory.Membership, TraceEventType.Error);  
}
4

3 に答える 3

0

独自のカスタムTraceListenerを検索または作成して、必要なデータベースに書き込むことをお勧めします。

次に、クラスでTraceSourceを使用し、両方を Web.config で構成します。

クラス:

public class SqlTraceListener : TraceListener
{
    ...
}

使用法:

private static TraceSource _traceSource = new TraceSource("MySource");

_traceSource.Trace(...);

構成:

<system.diagnostics>
    <sources>
        <source name="MySource" />
    </sources>
    <sharedListeners>
        <add name="sql" type="SqlTraceListener" />
    </sharedListeners>
    <trace autoflush="true">
    </trace>
</system.diagnostics>
于 2012-05-15T07:08:35.663 に答える
0

CreateEventSource を使用して EventSource を作成するには、管理者権限が必要です。

aspnetdb_log ソースが既に存在する場合、コードは問題なく動作するはずです。

于 2012-05-15T07:19:56.090 に答える
0

データベース、イベントログ、テキストファイルなど、さまざまな場所にログを記録できるさまざまなアペンダーが多数あるLog4Netをご覧になることをお勧めします。

これは、さまざまなアペンダーの使用に関する非常に優れたチュートリアルです

于 2012-05-15T07:53:19.073 に答える