Может ли Spring.Net регистрировать, что он делает, когда создает объекты?

Есть ли способ заставить Spring.Net регистрировать, что он делает при создании объектов? Что-то на заказ

Constructing Object A
Constructing Object B
etc etc.....

Мне нужно разрешить круговую зависимость в моем приложении, и наблюдение за порядком, в котором Spring создает объекты, может очень помочь.


person Jonathan Beerhalter    schedule 19.09.2011    source источник


Ответы (1)


Это можно легко сделать. Spring использует Common.Logging. Вы можете получить выходные данные журнала из Spring.Objects.Factory.* классов и найти ... Creating instance of Object 'your-id-here' ... сообщений.

Обратите внимание, что вы должны войти в систему на уровне DEBUG, что означает, что вы также увидите довольно много другой информации.

Следующий app.config будет регистрировать вызовы создания в консоли, используя log4net:

<?xml version="1.0" encoding="utf-8"?>
<configuration>

 <configSections>
    <sectionGroup name="common">
      <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
    </sectionGroup>

    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  </configSections>

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

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

<!-- this logger will catch creation messages -->

    <logger name="Spring.Objects.Factory">
      <level value="DEBUG" />
      <appender-ref ref="ConsoleAppender" />
    </logger>
  </log4net>

</configuration>

Так что по большей части это стандартная конфигурация Common.Logging и log4net, которая хорошо задокументирована на Common.Logging веб-сайт. Если вы хотите добавить в файл или что-то еще, см. документацию log4net.

person Marijn    schedule 21.09.2011