Ведение журнала Spring.Net с Log4Net не работает
-
05-09-2019 - |
Вопрос
У меня возникли проблемы с регистрацией Spring.Net с помощью Log4Net.Мне особенно интересно увидеть логирование аспектов.Я использую довольно простую конфигурацию журнала, аналогичную конфигурации приложения 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>
...
Файл «Spring_Log.txt» создается, но в него ничего не записывается (т.е.пустой файл).Log4Net в настоящее время правильно ведет журнал для NHibernate и наших пользовательских приложений.Я использую Spring.Net v1.2.0.20313 и Log4Net v1.2.10.0.
Была ли у кого-нибудь еще такая проблема, которую они смогли решить?Большое спасибо за любую помощь, ура.
Решение
Как сказал Эрих, вам нужно настроить Common.Logging.С вашим файлом конфигурации log4net все в порядке.Вот что я получил, используя ваш файл конфигурации:
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...
Вот краткое руководство по настройке Common.Logging:
Добавьте сборки Common.Logging и Common.Logging.Log4Net, которые поставляются вместе с Spring, в папку lib (C:\Program Files\Spring.NET 1.2.0\lib\Net\2.0\
).Затем добавьте следующую конфигурацию в свой 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>
Вот и все.Теперь вы должны получать отладочные сообщения от Spring.
Другие советы
Spring.NET использует Common.Logging.Вы настроили Common.Logging для входа в log4net?Видеть http://netcommon.sourceforge.net/documentation.html для документации
HTH, Эрих