Search code examples
sqlasp.net-mvcnhibernatecastle-activerecord

ASP.NET MVC - Castle ActiveRecord - Show SQL queries


I'm using ASP.NET MVC with Castle ActiveRecord as my persistance layer.

I want to know if it's possible to show the SQL queries being executed on my MySQL server.

I know it's possible in a Web application using the "show_sql" property in the Castle XML configuration file, but I don't know how to do it using a Web application, since I don't have access to the Console.

I think I can use log4net to do it, but after some research using Google, I haven't been able to come up with a solution.


Solution

  • In your Application_Start:

    XmlConfigurator.Configure(new FileInfo(Server.MapPath("/log4net.config")));
    

    Then you need a log4net.config in your root, something like this:

    <?xml version="1.0" encoding="utf-8" ?>
    
    <log4net debug="true">
        <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender, log4net" >
            <param name="File" value="log.txt" />
            <param name="AppendToFile" value="true" />
            <rollingStyle value="Date" />
            <datePattern value="yyyyMMdd" />
            <maxSizeRollBackups value="7" />
            <layout type="log4net.Layout.PatternLayout, log4net">
                <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
            </layout>
        </appender>
    
        <root>
            <priority value="DEBUG" />
            <appender-ref ref="LogFileAppender"/>
        </root>
    </log4net>
    

    Here's a sample app you can use as reference.