Domanda

Non ho voglia di fare il titolo troppo lungo, ma questa domanda si riferisce in particolare ad esecuzione un host NServiceBus generico come servizio di Windows (grazie a TopShelf) configurato per l'esecuzione come Sistema locale (su una macchina Vista)

Nel una domanda precedente spiego perché ho deciso di adattare il campione PubSub per l'esecuzione come un servizio di Windows in modo che possa facilmente arrestare e avviare il servizio di dimostrare pienamente a me stesso che NServiceBus stava facendo quello che doveva fare .

Per qualche motivo non riesco a Log4Net per accedere nulla sul disco, quindi questo potrebbe essere solo un Log4Net (newbie) problema di configurazione?

Di seguito è il mio tentativo di forza bruta per ottenere una sorta di tracciare andare - tutto quello che sto ricevendo finora è file Scritto nel seguente modo:

  

C: \ logs \ <- GUID-> log4net.log

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="MsmqTransportConfig" type="NServiceBus.Config.MsmqTransportConfig, NServiceBus.Core" />
    <section name="UnicastBusConfig" type="NServiceBus.Config.UnicastBusConfig, NServiceBus.Core" />
    <sectionGroup name="common">
      <section name="logging" type="Common.Logging.ConfigurationSectionHandler, NServiceBus.Core"/>
    </sectionGroup>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
  </configSections>

  <!-- in order to configure remote endpoints use the format: "queue@machine" 
       input queue must be on the same machine as the process feeding off of it.
       error queue can (and often should) be on a different machine.
  -->

  <MsmqTransportConfig
    InputQueue="worker2"
    ErrorQueue="error"
    NumberOfWorkerThreads="1"
    MaxRetries="5"
  />

  <UnicastBusConfig>
    <MessageEndpointMappings>
      <add Messages="Messages" Endpoint="messagebus" />
    </MessageEndpointMappings>
  </UnicastBusConfig>

  <common>
    <logging>
      <factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, NServiceBus.Core">
        <arg key="configType" value="INLINE"/>
      </factoryAdapter>
    </logging>
  </common>

  <log4net debug="true">
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender,log4net">
      <param name="File" value="c:\logs\Subscriber2.log" />
      <param name="AppendToFile" value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="2" />
      <maximumFileSize value="100KB" />
      <staticLogFileName value="true" />
      <datePattern value="yyyyMMdd" />
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
      </layout>
    </appender>

    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
      <layout type="log4net.Layout.PatternLayout">
        <conversionpattern value="%date [%thread] %-5level %logger - %message%newline" />
      </layout>
    </appender>

    <appender name="EventLogAppender" type="log4net.appender.eventlogappender">
      <applicationname value="Subscriber2.EndPointConfig_v1.0.0.0" />
      <layout type="log4net.layout.patternlayout">
        <conversionpattern value="%date [%thread] %-5level %logger - %message%newline" />
      </layout>
    </appender>

    <appender name="TraceAppender" type="log4net.Appender.TraceAppender">
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
      </layout>
    </appender>


    <root>
      <level value="ALL" />
      <appender-ref ref="RollingLogFileAppender" />
      <appender-ref ref="EventLogAppender" />
      <appender-ref ref="ConsoleAppender" />
      <appender-ref ref="TraceAppender" />
    </root>

  </log4net>

  <appSettings>
    <add key="log4net.Internal.Debug" value="true"/>
  </appSettings>

  <system.diagnostics>
    <trace autoflush="true">
      <listeners>
        <add
          name="textWriterTraceListener"
          type="System.Diagnostics.TextWriterTraceListener"
          initializeData="c:\logs\log4net.log" />
      </listeners>
    </trace>
  </system.diagnostics>

</configuration>
È stato utile?

Soluzione

NSB non prenderà le impostazioni del registro di file di configurazione di default. Per fare questo implementare IConfigureLogging nella classe di configurazione degli endpoint.

Più informazioni qui:

http://tech.groups.yahoo.com/group/nservicebus/ messaggio / 3655

Spero che questo aiuti!

/ Andreas

Altri suggerimenti

Sembra come se le altre due appenders stanno gettando le eccezioni durante il tentativo di login. Ho il sospetto che il %property{NDC} nei vostri modelli - rimuoverli dal modello e riprovare

.

Se il modello contiene la proprietà% {X}, allora è necessario impostare una proprietà con il tasto "X" utilizzando il codice come

ABC.Properties["X"] = /* some value */

dove: ABC rappresenta un'istanza LoggingEvent o ThreadContext o GlobalContext.

Non so se hai impostato le proprietà con il tasto "NDC", ma io non sospetto ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top