Active Query Builder support area

How to turn the logging on? (ASP.NET Edition)

Last modified:


Assign an instance of the StreamLog class to the queryBuilder.Log property.

public void SetLogger()
{
    var log = new StreamLog(new FileStream(@"c:\tmp\Log", FileMode.Create, FileAccess.Write));
    var qb = QueryBuilderStore.Get();
    qb.Log = log; // log the QueryBuilder, SqlContext, MetadataProvider, SyntaxProvider activity
    // OR 
    AqbHandler.Log = log; // in addition to the above-mentioned activity, will log all requests from clients to the server
}

You can create your own class implementing the ILog interface to write messages to log. It can write them to a simple text file writer, or you can use a logging library like the "log4net" assembly.

using ActiveQueryBuilder.Web.Server.Handlers;
using log4net;

    public class MvcApplication : HttpApplication
    {
        protected void Application_Start()
        {
            // do the needful
            
            BaseHandler.Log = new Logger();
        }
    }

    public class Logger : ActiveQueryBuilder.Core.ILog
    {
        private static readonly ILog Log = LogManager.GetLogger("Logger");

        public void Trace(string message)
        {
            Log.Info(message);
        }

        public void Warning(string message)
        {
            Log.Warn(message);
        }

        public void Error(string message)
        {
            Log.Error(message);
        }

        public void Error(Exception ex, string message)
        {
            Log.Error(message, ex);
        }
    }

You can simply put a breakpoint in the Error method to catch the exception details in the IDE.


Is this article helpful for you?