using System; using System.Diagnostics; using NHibernate; using NHibernate.SqlCommand; namespace Tanshu.Accounts.Repository { // Add the following in app settings in the config file to enable logging // public class EventsLogger : IInternalLogger { private readonly string _key; public EventsLogger(string key) { _key = key; } public bool IsDebugEnabled { get { return true; } } public bool IsErrorEnabled { get { return true; } } public bool IsFatalEnabled { get { return true; } } public bool IsInfoEnabled { get { return true; } } public bool IsWarnEnabled { get { return true; } } #region Methods (14) // Public Methods (14) public void Debug(object message) { if (!Cache.Log) return; if (message == null) return; var msg = message.ToString(); if (_key != "NHibernate.SQL") return; Console.WriteLine(string.Format(" -- {0} ---+ {1} +---", _key, DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss.ff"))); Console.WriteLine(message.ToString().Trim()); } public void Debug(object message, Exception exception) { if (!Cache.Log) return; if (message == null || exception == null) return; var msg = message.ToString(); if (_key != "NHibernate.SQL") return; Console.WriteLine(string.Format(" -- {0} ---+ {1} +---", _key, DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss.ff"))); Console.WriteLine(message.ToString().Trim()); Console.WriteLine(exception.ToString()); } public void DebugFormat(string format, params object[] args) { Console.Write(new[] { string.Format("---+ {0} +---", DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss.ff")), string.Format(format, args), }); } public void Error(object message) { Debug(message); } public void Error(object message, Exception exception) { Debug(message, exception); } public void ErrorFormat(string format, params object[] args) { DebugFormat(format, args); } public void Fatal(object message) { Debug(message); } public void Fatal(object message, Exception exception) { Debug(message, exception); } public void Info(object message) { Debug(message); } public void Info(object message, Exception exception) { Debug(message, exception); } public void InfoFormat(string format, params object[] args) { DebugFormat(format, args); } public void Warn(object message) { Debug(message); } public void Warn(object message, Exception exception) { Debug(message, exception); } public void WarnFormat(string format, params object[] args) { DebugFormat(format, args); } #endregion Methods } public class EventsLogFactory : ILoggerFactory { public IInternalLogger LoggerFor(Type type) { return new EventsLogger(type.ToString()); } public IInternalLogger LoggerFor(string keyName) { return new EventsLogger(keyName); } } }