private static Action <DateTime, int, string, Exception> Log4NetLogHandlerProvider(string loggerName) { if (_log4netLogRepo == null) { _log4netLogRepo = log4net.LogManager.GetRepository(Assembly.GetEntryAssembly()); log4net.Config.XmlConfigurator.ConfigureAndWatch(_log4netLogRepo, new FileInfo("log4net.config")); } var log4netLogger = _log4netLogRepo.GetLogger(loggerName); return(new Action <DateTime, int, string, Exception>(delegate(DateTime timeStamp, int logLevel, string message, Exception exception) { log4net.Core.LoggingEventData logEventData = new log4net.Core.LoggingEventData(); logEventData.Level = _log4NetLogLevelArray[logLevel]; logEventData.TimeStampUtc = timeStamp.ToUniversalTime(); logEventData.Message = message; if (exception != null) { logEventData.ExceptionString = exception.ToString(); } log4net.Core.LoggingEvent logEvent = new log4net.Core.LoggingEvent(logEventData); log4netLogger.Log(logEvent); })); }
private static void actualLog(log4net.Core.Level level, object message, Exception exception, ILog internalLogger, int skipFrames) { StackFrame frame = new StackTrace(skipFrames, true).GetFrame(0); MethodBase methodBase = frame.GetMethod(); getFrame(skipFrames, frame, methodBase); log4net.Core.LoggingEventData eventData = getEventData(level, message, exception, frame, methodBase); log4net.Core.LoggingEvent le = new log4net.Core.LoggingEvent(methodBase.DeclaringType, logueador.Logger.Repository, eventData, log4net.Core.FixFlags.All); internalLogger.Logger.Log(le); }
public LoggingData(log4net.Core.LoggingEventData data) { this.identity = data.Identity; this.loggerName = data.LoggerName; this.level = Level.DEBUG; this.message = data.Message; this.threadName = data.ThreadName; this.timeStampTicks = data.TimeStamp.Ticks; this.locationInfo = new LocationInfo(data.LocationInfo); this.exceptionString = data.ExceptionString; this.domain = data.Domain; this.level = ConvertLevel(data.Level.Value); this.timeStamp = new DateTime(this.timeStampTicks); this.userName = GetDeviceName(); }
private static void AsyncThreadExec() { while (_asyncFlag) { _asyncEvent.WaitOne(); //--> Espera hasta q el thread reciba una señal, en este caso recibe la señal del _asyncEvent.Set(); lock (_lock) { while (_asyncQueue.Count > 0) { log4net.Core.LoggingEventData eventData = _asyncQueue.Dequeue(); log4net.Core.LoggingEvent le = new log4net.Core.LoggingEvent(eventData); logueador.Logger.Log(le); } _asyncEvent.Reset(); //-->Vuelve a bloquear los threads y los deja a la espera de la próxima señal.... } Thread.Sleep(1); } }
/// <summary> /// Logs a message and exception as specific log kind [async] /// </summary> /// <param name="sender">sender object or class if static type</param> /// <param name="exception">exception to log</param> /// <param name="message">message to log</param> /// <param name="kind">kind of log</param> /// <param name="contextID">reference to the logging context</param> /// <param name="traceIdentifier">reference to the debug context</param> public static void AsyncLog(log4net.Core.Level level, object message, Exception exception) { lock (_lock) { if (_asyncQueue == null) { _asyncQueue = new Queue <log4net.Core.LoggingEventData>(); _asyncEvent = new ManualResetEvent(false); _asyncThread = new Thread(AsyncThreadExec); _asyncThread.Start(); } StackFrame frame = new StackTrace(3, true).GetFrame(0); MethodBase methodBase = frame.GetMethod(); log4net.Core.LoggingEventData eventData = getEventData(level, message, exception, frame, methodBase); _asyncQueue.Enqueue(eventData); _asyncEvent.Set(); //-->Envía una señal a los threads q están esperando.... } }
public void RecordTestRun(String TestCase) { //Log.Debug(TestCase); var h = (log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository(); foreach (IAppender a in h.Root.Appenders) { if (a.Name == "AdoNetAppender_AccessTestCase") { var logdata = new log4net.Core.LoggingEventData(); logdata.Level = log4net.Core.Level.Debug; logdata.LoggerName = typeof(LoggerCom).Name; logdata.Message = TestCase; logdata.TimeStamp = DateTime.Now; var logevent = new log4net.Core.LoggingEvent(logdata); a.DoAppend(logevent); } } }
private static log4net.Core.LoggingEventData getEventData(log4net.Core.Level level, object message, Exception exception, StackFrame frame, MethodBase methodBase) { byte contaSteps = 0; string step = string.Empty; try { int lineNumeber = frame.GetFileLineNumber(); contaSteps++; string file = frame.GetFileName() ?? "NOT AVAILABLE"; contaSteps++; log4net.Core.LoggingEventData eventData = new log4net.Core.LoggingEventData(); contaSteps++; step = "AppDomain.CurrentDomain.FriendlyName"; eventData.Domain = AppDomain.CurrentDomain.FriendlyName; contaSteps++; step = "exception"; if (exception != null) { eventData.ExceptionString = exception.ToString(); } contaSteps++; step = "UserName"; eventData.UserName = System.Threading.Thread.CurrentPrincipal.Identity.Name; contaSteps++; step = "eventData.UserName"; eventData.Identity = eventData.UserName; contaSteps++; step = "level"; eventData.Level = level; contaSteps++; step = "methodBase"; if (methodBase != null) { string methodBaseName = (methodBase.Name ?? "NOT AVAILABLE"); contaSteps++; step = "methodBaseName"; string methodBaseDeclaringType = (methodBase.DeclaringType != null? methodBase.DeclaringType.Name : "NOT AVAILABLE"); contaSteps++; step = "methodBaseDeclaringType"; contaSteps++; eventData.LocationInfo = new log4net.Core.LocationInfo(methodBaseDeclaringType, methodBaseName, file, lineNumeber.ToString()); step = "eventData.LocationInfo"; } contaSteps++; step = "loggerName"; eventData.LoggerName = loggerName; contaSteps++; step = "message"; eventData.Message = message.ToString(); contaSteps++; step = "ThreadName"; eventData.ThreadName = System.Threading.Thread.CurrentThread.Name ?? string.Empty; contaSteps++; step = "TimeStamp"; eventData.TimeStamp = System.DateTime.Now; contaSteps++; step = "End---"; return(eventData); } catch (Exception ex) { log4net.Core.LoggingEventData eventData = new log4net.Core.LoggingEventData(); logueador.Error(string.Format("[getEventData]:: {0}", contaSteps), ex); eventData.Domain = "Herbalife.SAM-CAM.Framework.Tools.Utilities"; eventData.ExceptionString = ex.ToString(); eventData.UserName = "******"; eventData.Identity = "NOT AVAILABLE";; eventData.Level = log4net.Core.Level.Error; eventData.LoggerName = loggerName; eventData.Message = string.Format("Herbalife.SAM-CAM.Framework.Tools.Utilities.LoggerUtility.getEventData Error (contaSteps:{0} - {3}) - ORIGINAL MESSAGE: {1} -::- \n\n{2}", contaSteps, message.ToString(), (methodBase != null ? methodBase.ToString() : "methodBase is null"), step); eventData.ThreadName = string.Empty; eventData.TimeStamp = System.DateTime.Now; return(eventData); } }