在NHibernate中使用Enterprise Library日志应用程序块

Her*_*man 3 nhibernate log4net enterprise-library

我们正在尝试将NHibernate集成为我们的OR/M,但是,我们目前正在使用Enterprise Library的日志记录应用程序块.我知道NHibernate使用log4net来记录.有没有人有任何关于如何使用Enterprise Library来记录NHibernate相关日志的例子?

pto*_*son 5

编写自己的log4net appender,写入EL记录器.这是一个适配器模式.

从中继承一个新的/自定义的appender类 log4net.Appender.AppenderSkeleton

Append从骨架类中覆盖事件处理程序,并在其中显示RenderedMessage,如下所示:

using System;
using log4net;
using System.Windows.Forms;

namespace MyAppender
{
    public class CustomAppender : log4net.Appender.AppenderSkeleton
    {
        protected override void Append(log4net.spi.LoggingEvent log)
        {
            // log to EL logger based on log properties.
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后你需要配置log4net配置文件....

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <log4net>
        <appender name="MyAppender" type="MyAppender.CustomAppender,CustomAppender">
            <threshold value="DEBUG"/>
        </appender>

        <root>
            <level value="DEBUG" />
                <appender-ref ref="MyAppender" />
        </root>
    </log4net>
</configuration>
Run Code Online (Sandbox Code Playgroud)

我没有测试过这个,但它应该让你去.