另一个log4net,流畅的nhibernate配置问题

这让我疯狂了......我花了半天的时间试图把所有的东西都弄出来,但是我不能让log4net吐出关于NHibernate的任何东西。

这是我目前的流利NHibernate配置:

var configuration = Fluently.Configure()
    .Database(SQLiteConfiguration.Standard.UsingFile(AppConstants.PATH_FILENAME_DB))
    .Mappings(m => m.FluentMappings.AddFromAssemblyOf<...>())
    [...Mappings...]
    .Diagnostics(x => x.Enable());

我的app.config:

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

<log4net>
  <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
    <param name="File" value="data/log/unprocessed.log"/>
    <param name="AppendToFile" value="true"/>
    <layout type="log4net.Layout.PatternLayout">
      <param name="ConversionPattern" value="%d [%t] %-5p %c %m%n"/>
    </layout>
  </appender>

  <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
    <layout type="log4net.Layout.PatternLayout">
      <param name="ConversionPattern" value="%d [%t] %-5p %c %m%n"/>
    </layout>
  </appender>

  <logger name="NHibernate.SQL" additivity="false">
    <level value="ALL"/>
    <appender-ref ref="LogFileAppender"/>
  </logger>

  <root>
    <level value="INFO"/>
    <appender-ref ref="LogFileAppender"/>
  </root>
</log4net>

我可以在初始化主窗体之后立即登录:

log4net.Config.XmlConfigurator.Configure();
logger.Info("Here is a debug log!!");

它的工作原理是100%。 但是我无法从Nhibernate中获得任何东西。

我试过了:

  • 在我的Fluent NHibernate配置中设置ShowSql()=> SQL出现在VS控制台中。
  • 添加NHibernate记录器
  • 消除可加性
  • 使用ConsoleAppender而不是LogFileAppender(虽然我从应用程序获取常规日志,但输出中仍然没有SQL)
  • 重新编译流利的NHibernate,尝试了3种不同版本的log4net ...
  • 我的流利Nhibernate映射是好的,我的应用程序完美工作,没有log4net。

    我仍然无法记录NHibernate的任何查询...不知道发生了什么,但如果你有线索,我会很乐意尝试!

    谢谢!


    那么我最终发现了这个问题......

    我所有的DLL都位于/ lib文件夹而不是输出文件夹。

    我的app.config的一部分有这样的:

    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>
    <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <probing privatePath="lib"/>
        <dependentAssembly>
          <assemblyIdentity name="System.Data" publicKeyToken="b77a5c561934e089"/>
          <bindingRedirect oldVersion="2.0.0.0" newVersion="4.0.0.0"/>
        </dependentAssembly>
      </assemblyBinding>
    </runtime>
    

    将log4net.dll放在我的输出文件夹中解决了问题。

    链接地址: http://www.djcxy.com/p/39457.html

    上一篇: Another log4net, fluent nhibernate configuration issue

    下一篇: Fluent NHibernate and XML columns