Spring.Net可以记录它正在构建器对象的内容吗?

时间:2011-09-19 18:56:08

标签: spring.net

有没有让Spring.Net记录它在构造对象时所做的事情?

的顺序
Constructing Object A
Constructing Object B
etc etc.....

我需要在我的应用程序中解决循环依赖关系,并且看到Spring创建对象的顺序可能是一个巨大的帮助。

1 个答案:

答案 0 :(得分:2)

这很容易做到。 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 website上有详细记录。如果要附加到文件或其他内容,请参阅log4net文档。