Domanda

Sto avendo difficoltà a raggiungere Spring.Net effettuare il login, utilizzando Log4Net. Sono particolarmente interessato a vedere la registrazione intorno alle Aspetti. Io sto usando un piuttosto semplice configurazione di registro, simile a quella dell'esempio app MovieFinder:

...
<logger name="Spring">
  <level value="DEBUG" /> <!-- Have tried INFO as well, no different -->
  <appender-ref ref="SpringAppender"/>
</logger> 

<appender name="SpringAppender" type="log4net.Appender.RollingFileAppender">
  <file value="..\Log\Spring_Log.txt"/>
  <appendToFile value="true"/>
  <maximumFileSize value="100MB"/>
  <maxSizeRollBackups value="2"/>
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date %-5level [%thread] %logger - %message%newline"/>
  </layout>
</appender>
...

Viene creato il file "Spring_Log.txt", ma nulla viene registrato ad esso (cioè file vuoto). Log4Net è attualmente registrando correttamente per NHibernate e la nostra registrazione un'applicazione personalizzata. Sto usando Spring.Net v1.2.0.20313 e Log4Net v1.2.10.0.

Qualcuno ha altro ha avuto questo problema che sono stati in grado di risolvere? Molte grazie per qualsiasi aiuto, applausi.

È stato utile?

Soluzione

Come ha detto Erich, è necessario configurare Common.Logging. Il file di configurazione log4net va bene. Ecco quello che ho utilizzando il file di configurazione:

2009-05-02 19:08:40,890 DEBUG [10] Spring.Objects.Factory.Support.AbstractObjectDefinitionReader - Loading XML object definitions from config [C:\Documents and Settings\pczapla\My Documents\Visual Studio 2008\Projects\TimeLogger\TimeLogger\bin\Debug\TimeLogger.exe.config#spring/objects]
2009-05-02 19:08:40,905 DEBUG [10] Spring.Objects.Factory.Support.AbstractObjectDefinitionReader - Using the following XmlReader implementation : System.Xml.XsdValidatingReader
2009-05-02 19:08:40,921 DEBUG [10] Spring.Objects.Factory.Xml.DefaultObjectDefinitionDocumentReader - Loading object definitions.
2009-05-02 19:08:40,921 DEBUG [10] Spring.Objects.Factory.Xml.ObjectDefinitionParserHelper - Loading object definitions...

Ecco una rapida guida su come configurare Common.Logging:

Aggiungi Common.Logging & Common.Logging.Log4Net assemblee vengono spediti con la molla nella cartella lib (C:\Program Files\Spring.NET 1.2.0\lib\Net\2.0\). Quindi aggiungere la seguente configurazione al app.config:

<configuration>
    </configSections>
        ...
        <sectionGroup name="common">
            <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
        </sectionGroup>
    </configSections>
    ...
    <common>
        <logging>
            <factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4net">
                <!-- Common Logging assumes that log4net is initialized -->
                <arg key="configType" value="EXTERNAL"/>
                <!-- Or it can configure log4net for you
                <arg key="configType" value="FILE-WATCH" />
                <arg key="configFile" value="path\to\your\log4net.config" />
                -->
            </factoryAdapter>
        </logging>
    </common>
</configuration>

Questo è tutto. Ora si dovrebbe ottenere messaggi di debug a partire dalla primavera.

Altri suggerimenti

Spring.NET utilizza Common.Logging. Avete configurato Common.Logging per accedere a log4net? Vedere http://netcommon.sourceforge.net/documentation.html per la documentazione

hth, Erich

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