log4net无法在dll中工作

Col*_*e W 5 c# logging log4net

我目前在让log4net在特定dll中工作时遇到问题。我当前在我的测试应用程序调用的其他dll中使用log4net,并且在这些dll中以及我的测试应用程序中的日志记录工作正常。这是我遇到的一个特定的dll。这是我遇到问题的dll代码的片段。

//This is from ABC.dll
public class SessionFactory
{
    protected static ISessionFactory sessionFactory;
    private static readonly ILog log = LogManager.GetLogger(typeof(SessionFactory));

    private static void Init()
    {
        try
        {
            //Read the configuration from hibernate.xml.cfg or app.config
            Configuration normalConfig = new Configuration().Configure();
            ConfigureNhibernateValidator(normalConfig);

            log.Debug("Initializing session factory");

            sessionFactory = Fluently.Configure(normalConfig)
              .Mappings(m =>
                  m.FluentMappings
                  .AddFromAssemblyOf<OrderHeaderMap>()
                  .Conventions.AddFromAssemblyOf<PascalCaseColumnNameConvention>())
               .ProxyFactoryFactory("NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu")
              .BuildSessionFactory();

            log.Debug("Finished initializing the session factory");
        }
        catch(Exception ex)
        {
            //Code not shown
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的测试应用中,我正在调用:

log4net.Config.XmlConfigurator.Configure();
Run Code Online (Sandbox Code Playgroud)

这是我的App.config文件中的log4net配置:

//This is from ABC.dll
public class SessionFactory
{
    protected static ISessionFactory sessionFactory;
    private static readonly ILog log = LogManager.GetLogger(typeof(SessionFactory));

    private static void Init()
    {
        try
        {
            //Read the configuration from hibernate.xml.cfg or app.config
            Configuration normalConfig = new Configuration().Configure();
            ConfigureNhibernateValidator(normalConfig);

            log.Debug("Initializing session factory");

            sessionFactory = Fluently.Configure(normalConfig)
              .Mappings(m =>
                  m.FluentMappings
                  .AddFromAssemblyOf<OrderHeaderMap>()
                  .Conventions.AddFromAssemblyOf<PascalCaseColumnNameConvention>())
               .ProxyFactoryFactory("NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu")
              .BuildSessionFactory();

            log.Debug("Finished initializing the session factory");
        }
        catch(Exception ex)
        {
            //Code not shown
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

再次使用SpeedTest附加程序在我的测试应用程序中进行日志记录工作正常,但是上述代码段中的日志记录不起作用。我在上面初始化断点记录器时设置了断点,似乎击中了断点。如有必要,我可以发布log4net调试输出,但我看的并不多。请告诉我您是否需要它,我会发布。

关于为什么在上述代码段中未记录日志的任何建议?

Col*_*e W 5

似乎这个问题源于我在TFS中将目录更改为我所有的外部依赖项(log4net是其中之一)。我所做的只是将所有引用拖放到我的Visual Studio项目中,然后从新的依赖文件夹中重新添加它们,然后一切按预期进行。感谢所有为您提供帮助的人。