Beispiel #1
0
        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);
            }));
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
 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();
 }
Beispiel #4
0
 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);
     }
 }
Beispiel #5
0
        /// <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....
            }
        }
Beispiel #6
0
 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);
         }
     }
 }
Beispiel #7
0
        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);
            }
        }