14

NLog でイベント ログに書き込めません。コンソールとファイルに書き込むことができました。NLog で例外を有効にしましたが、NLog からフィードバックがありません。

ここに私のNLog.configがあります:

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      throwExceptions="true">
    <targets>
        <target name="console" xsi:type="Console" layout="${message}" />
        <target xsi:type="EventLog" name="eventlog" layout="${message}" log="Application" source="aaaTest"/>
        <target xsi:type="File" fileName="log.txt" name="file"/>
    </targets>

    <rules>
        <logger name="*" minlevel="Debug" writeTo="eventlog,console,file" />
    </rules>
</nlog>

イベント ビューアーで、「イベント ビューアー (ローカル)」 > 「Windows ログ」 > 「アプリケーション」を見ています。ただし、ログに「aaaTest」(定義したソース) のインスタンスはありません。

4

1 に答える 1

18

nlog フォーラムの投稿から

EventLog に書き込めるようにするには、アプリケーションをイベント ソースとして登録する必要があります。VS を管理者として実行すると、これは自動的に行われます。インストーラーを作成してアプリケーションをインストールすると、登録されます。

アプリを手動でイベント ソースとして登録するには、次のスクリプトを使用します。

Set Args = WScript.Arguments
If Args.Count < 1 then
    WScript.Echo "USAGE: CreateEventSource.vbs <EventSourceName>"
    WScript.Quit
End If
EventSourceName = Args(0)

Set WshShell = WScript.CreateObject("WScript.Shell")

'Create event source
KeyName = "HKLM\SYSTEM\CurrentControlSet\Services\Eventlog\Application\" & EventSourceName & "\EventMessageFile"
'Change path to .NET Framework version used
WshShell.RegWrite KeyName,"%windir%\Microsoft.NET\Framework64\v2.0.50727\EventLogMessages.dll", "REG_EXPAND_SZ" 
于 2011-01-13T11:37:57.183 に答える