如何记录sql

如何记录sql,sql,log4net,subsonic3,logging,Sql,Log4net,Subsonic3,Logging,我开始基于subsonic3(用于查询)和log4net(用于日志)开发一个新的asp.net应用程序,我想知道如何将subsonic3与log4net接口,以便log4net记录subsonic使用的底层sql 这就是我到目前为止所做的: public static IEnumerable<arma_ocorrencium> ListArmasOcorrencia() { if (logger.IsInfoEnabled) {

我开始基于subsonic3(用于查询)和log4net(用于日志)开发一个新的asp.net应用程序,我想知道如何将subsonic3与log4net接口,以便log4net记录subsonic使用的底层sql

这就是我到目前为止所做的:

public static IEnumerable<arma_ocorrencium> ListArmasOcorrencia()
    {
        if (logger.IsInfoEnabled)
        {
            logger.Info("ListarArmasOcorrencia: start");
        }

        var db = new BdvdDB();
        var select = from p in db.arma_ocorrencia
                              select p;

        var results = select.ToList<arma_ocorrencium>(); //Execute the query here

        if (logger.IsInfoEnabled)
        {
            // log sql here
        }


        if (logger.IsInfoEnabled)
        {
            logger.Info("ListarArmasOcorrencia: end");
        }

        return results;
    }
公共静态IEnumerable列表ARMASOCorrencia()
{
如果(logger.IsInfo已启用)
{
logger.Info(“ListarArmasOcorrencia:start”);
}
var db=新的BdvdDB();
var select=从p开始,单位为db.arma\u ocorrencia
选择p;
var results=select.ToList();//在此处执行查询
如果(logger.IsInfo已启用)
{
//在此处记录sql
}
如果(logger.IsInfo已启用)
{
logger.Info(“ListarArmasOcorrencia:end”);
}
返回结果;
}

您可以像这样获得生成的sql:

string sql = select.GetQueryText();
确保您使用的是3.0.0.4或更高版本


干杯

您可以像这样获得生成的sql:

string sql = select.GetQueryText();
确保您使用的是3.0.0.4或更高版本


Cheers

您可以使用提供者类的Log属性:

_db.Provider.Log = Console.Out;

将SQL语句记录到控制台。如果要使用log4net或类似的工具,您必须编写一个小型中介类,该类实现TextWriter并将所有接收到的输入重定向到log4net。

您可以使用Provider类的Log属性:

_db.Provider.Log = Console.Out;

将SQL语句记录到控制台。如果您想使用log4net或类似的东西,您必须编写一个小型中介类,该类实现TextWriter并将所有接收到的输入重定向到log4net。

我收到了这个错误,是的,我使用的是3.0.0.4:System.Linq.iQueryTable不包含“GetQueryText”的定义,并且找不到接受“System.Linq.iQueryTable”类型的第一个参数的扩展方法“GetQueryText”(是否缺少using指令或程序集引用?),是的,我使用的是3.0.0.4:System.Linq.iQueryTable不包含“GetQueryText”的定义,并且找不到接受“System.Linq.iQueryTable”类型的第一个参数的扩展方法“GetQueryText”(是否缺少using指令或程序集引用?)