2

EntLib4.1を使用しています。ログエントリをさまざまなカテゴリに関連付けたい。私のカテゴリには、コンテキストの種類(「バッチ」や「オンライン」など)や機能領域(「請求書」や「注文」など)など、さまざまな興味深い情報が反映されます。

ロギングコードを実行しましたが、構成に問題があると思います。私が達成しようとしているのは、カテゴリ「バッチ」に記録されたすべてのエントリを「バッチ」と呼ばれるイベントログに記録し、その他すべてをアプリケーションログに記録することです。(この名前でカスタムイベントログを手動で作成しました。)

ただし、カテゴリBatchのログエントリは代わりにアプリケーションログに記録され、各エントリには次のプリアンブルが含まれます。

メッセージ:LogSource'Batch'へのトレースに失敗しました。他のソースの処理は続行されます。詳細については、以下の要約情報を参照してください。この問題が解決しない場合は、サービスを停止し、構成ファイルをチェックして、カテゴリとシンクの構成で発生する可能性のあるエラーを確認してください。

EntLib構成ファイル:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <configSections>
        <section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings, Microsoft.Practices.EnterpriseLibrary.Logging, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    </configSections>
    <loggingConfiguration name="Logging Application Block" tracingEnabled="true"
      defaultCategory="APPLICATION" logWarningsWhenNoCategoriesMatch="true">
        <listeners>
            <add source="Project II Logger" formatter="Text Formatter" log="Batch"
              machineName="" listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.FormattedEventLogTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
              traceOutputOptions="None" filter="All" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.FormattedEventLogTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
              name="BatchListener" />
            <add source="Project II Logger" formatter="Text Formatter" log="Application"
              machineName="" listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.FormattedEventLogTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
              traceOutputOptions="Callstack" filter="All" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.FormattedEventLogTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
              name="DefaultListener" />
            <add fileName="c:\temp\trace.log" header="----------------------------------------"
              footer="----------------------------------------" formatter="ExceptionFormatter"
              listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.FlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
              traceOutputOptions="Callstack" filter="All" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.FlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
              name="Exception TraceListener" />
        </listeners>
        <formatters>
            <add template="Timestamp: {timestamp}&#xD;&#xA;Message: {message}&#xD;&#xA;Category: {category}&#xD;&#xA;Priority: {priority}&#xD;&#xA;EventId: {eventid}&#xD;&#xA;Severity: {severity}&#xD;&#xA;Title:{title}&#xD;&#xA;Machine: {machine}&#xD;&#xA;Application Domain: {appDomain}&#xD;&#xA;Process Id: {processId}&#xD;&#xA;Process Name: {processName}&#xD;&#xA;Win32 Thread Id: {win32ThreadId}&#xD;&#xA;Thread Name: {threadName}&#xD;&#xA;ErrorMessages: {errorMessages}"
              type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
              name="ExceptionFormatter" />
            <add template="Timestamp: {timestamp}&#xD;&#xA;Message: {message}&#xD;&#xA;Category: {category}&#xD;&#xA;Priority: {priority}&#xD;&#xA;EventId: {eventid}&#xD;&#xA;Severity: {severity}&#xD;&#xA;Title:{title}&#xD;&#xA;Machine: {machine}&#xD;&#xA;Application Domain: {appDomain}&#xD;&#xA;Process Id: {processId}&#xD;&#xA;Process Name: {processName}&#xD;&#xA;Win32 Thread Id: {win32ThreadId}&#xD;&#xA;Thread Name: {threadName}&#xD;&#xA;ErrorMessages: {errorMessages}"
              type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
              name="Text Formatter" />
        </formatters>
        <categorySources>
            <add switchValue="All" name="APPLICATION">
                <listeners>
                    <add name="DefaultListener" />
                </listeners>
            </add>
            <add switchValue="All" name="Batch">
                <listeners>
                    <add name="BatchListener" />
                </listeners>
            </add>
        </categorySources>
        <specialSources>
            <allEvents switchValue="All" name="All Events" />
            <notProcessed switchValue="All" name="Unprocessed Category" />
            <errors switchValue="All" name="Logging Errors &amp; Warnings">
                <listeners>
                    <add name="DefaultListener" />
                </listeners>
            </errors>
        </specialSources>
    </loggingConfiguration>
</configuration>
4

1 に答える 1

0

私の推測では、適切なイベントログやイベントソースをそのログ内に作成していないと思います。

問題は構成ファイルにないようです。

batファイルまたはコンソールアプリから新しいログなどを設定する場合は、必ずadminで実行してください。

ログとソースの作成win7

于 2012-05-07T20:48:54.307 に答える