Esempio n. 1
0
        private static void WriteLog(LogLevels level, string message)
        {
            if (!Directory.Exists(LogFolder))
            {
                Directory.CreateDirectory(LogFolder);
            }

            if (level >= Settings.settingsStore.logLevel)
            {
                string output;
                if (Settings.settingsStore.useUTCTimeInLog)
                {
                    output = "[" + DateTime.UtcNow.ToString("HH:mm:ss") + "][" + level.ToString() + "] : " + message;
                }
                else
                {
                    output = "[" + DateTime.Now.ToString("HH:mm:ss") + "][" + level.ToString() + "] : " + message;
                }
                Console.WriteLine(output);
                ClientHandler.SendConsoleMessageToAdmins(output);
                try
                {
                    lock (logLock) {
                        File.AppendAllText(LogFilename, output + Environment.NewLine);
                    }
                }
                catch (Exception e)
                {
                    Console.ForegroundColor = ConsoleColor.DarkRed;
                    Console.WriteLine("Error writing to log file!, Exception: " + e);
                    Console.ForegroundColor = ConsoleColor.Gray;
                }
            }
        }
Esempio n. 2
0
 private void LogData(string message, LogLevels level, Exception exception)
 {
     if (LogLevel <= level)
     {
         if (exception == null)
         {
             LogData(string.Format("{0} - {1} - {2} - {3}", DateTime.Now.ToString("MM/dd/yyyy HH:nn:ss.fffff"), ClassLogger.ToString(), level.ToString(), message));
         }
         else
         {
             LogData(string.Format("{0} - {1} - {2} - {3}::\r\n{4}", DateTime.Now.ToString("MM/dd/yyyy HH:nn:ss.fffff"), ClassLogger.ToString(), level.ToString(), message, exception.ToString()));
         }
     }
 }
Esempio n. 3
0
 /// <summary>
 /// Logs a message to the database logger.
 /// If logger not defined, logs to the console.
 /// </summary>
 public static void AltLog(LogLevels eventType, int id, string message, bool forceconsole = false)
 {
     if (!forceconsole && Logger != null)
         Logger.TraceEvent(eventType, id, message);
     else
         Console.WriteLine(eventType.ToString() + " " + id + " " + LMLoggers.LognLM.FlattenChars(message));
 }
Esempio n. 4
0
 public static string Format(DateTime dateTime,LogLevels level,string toWrite)
 {
     var levelString = level.ToString().Substring(3).ToUpper();
     return string.Format("{0:0000}/{1:00}/{2:00} {3:00}:{4:00}:{5:00} ({6}) {7}",
                                              dateTime.Year,
                                              dateTime.Month,
                                              dateTime.Day,
                                              dateTime.Hour,
                                              dateTime.Minute,
                                              dateTime.Second,
                                              levelString,
                                              toWrite
         );
 }
Esempio n. 5
0
        private static void WriteLog(LogLevels level, string format, params object[] args)
        {
            if (level < MinLogLevel) { return; }

            lock (Console.Out)
            {
                string Line = string.Format("[{0}] [{1}] : {2}", DateTime.Now.ToString("HH:mm:ss"), level.ToString(), string.Format(format, args));
                Console.WriteLine(Line);
                try
                {
                    File.AppendAllText(LogFilename, Line + Environment.NewLine);
                }
                catch { } //What do we do about this?
            }
        }
Esempio n. 6
0
        private static void WriteLog(LogLevels level, string message)
        {
            if (!Directory.Exists(logDir))
            {
                Directory.CreateDirectory(logDir);
            }

            string output = "[" + DateTime.Now.ToString("HH:mm:ss") + "][" + level.ToString() + "] : " + message;
            Console.WriteLine(output);
            
            try
            {
                File.AppendAllText(logFile, output + Environment.NewLine);
            }
            catch (Exception e)
            {
                Console.ForegroundColor = ConsoleColor.DarkRed;
                Console.WriteLine("Error writing to log file!, Exception: " + e);
                Console.ForegroundColor = ConsoleColor.Gray;
            }
        }
Esempio n. 7
0
        private static void WriteLog(LogLevels level, string format, params object[] args)
        {
            if (level < MinLogLevel) { return; }

            string output = string.Format("[{0}] : {1}", level.ToString(), string.Format(format, args));

            switch (level)
            {
                case LogLevels.Debug:
                case LogLevels.Activity:
                case LogLevels.Info:
                case LogLevels.Notice:
                    UnityEngine.Debug.Log(output);
                    break;
                case LogLevels.Warning:
                    UnityEngine.Debug.LogWarning(output);
                    break;
                case LogLevels.Error:
                    UnityEngine.Debug.LogError(output);
                    break;
            }
        }
Esempio n. 8
0
        private static void WriteLog(LogLevels level, string format, params object[] args)
        {
            if (level < MinLogLevel)
            {
                return;
            }

            lock (Console.Out)
            {
                string Line = string.Format("[{0}] [{1}] : {2}", DateTime.Now.ToString("HH:mm:ss"), level.ToString(), string.Format(format, args));
                Console.WriteLine(Line);
                try
                {
                    File.AppendAllText(LogFilename, Line + Environment.NewLine);
                }
                catch { } //What do we do about this?
            }
        }
Esempio n. 9
0
 private static void _print(string txt, LogLevels lvl)
 {
     lock (sem_consolePrint)
     {
         string msg = DateTime.Now.ToString(logDateFormat) + txt;
         msg = string.Format("{0} [{1}]: {2}"
                             , new string[] { DateTime.Now.ToString(logDateFormat), lvl.ToString(), txt });
         if (writeToConsole)
         {
             Console.WriteLine(msg);
         }
         if (writeToLog)
         {
             sb_log.Append(Environment.NewLine + msg);
         }
     }
 }
Esempio n. 10
0
        static void Main(string[] args)
        {
            //acl_demo();
            //return;
            PrintInfo();

            if (args.Length < 1 || string.IsNullOrWhiteSpace(args[0]))
            {
                PrintUsage();
                return;
            }

            myFirstDir = args[0];
            Console.WriteLine("   {root directory} :: '" + myFirstDir + "'");
            Console.WriteLine();

            LoadInputParameters();
            print.trace("Logging started");
            print.info("Parameters loaded from App.config:");
            print.info("ThreadCount=" + th_cnt.ToString());
            print.info("HowManyItemsPerThread=" + item_per_th_cnt.ToString());
            print.info("LogFilePath=" + logFilePath.ToString());
            print.info("WriteLogToFile=" + writeToLog.ToString());
            print.info("WriteLogToConsole=" + writeToConsole.ToString());
            print.info("LogDateFormat=" + logDateFormat.ToString());
            print.info("LogLevel=" + LogLevel.ToString());

            if (!Directory.Exists(myFirstDir))
            {
                print.FATAL("Directory '" + myFirstDir + "' does not exists! (EXIT)");
                return;
            }

            if (writeToLog && (string.IsNullOrWhiteSpace(logFilePath) || !Directory.Exists(Path.GetDirectoryName(logFilePath))))
            {
                print.FATAL("Write to log file is enabled but directory for log file does not exists! '" + logFilePath + "' (EXIT)");
                return;
            }

            //icacls "c:\test" /reset /T /C /Q

            DateTime       dtstart        = DateTime.Now;
            int            citems         = 0;
            int            cdirs          = 0;
            int            cfiles         = 0;
            int            citemschgd     = 0;
            Queue <string> filesToTravers = new Queue <string>();

            //setup threading vars
            ParameterizedThreadStart tsp_oneParamQueueString = new ParameterizedThreadStart(th_execQueue);

            Thread[] my_threads = new Thread[th_cnt];

            //create a queue for traversing through dirs and insert the root directory
            Queue <string> dirsToTravers = new Queue <string>();

            dirsToTravers.Enqueue(myFirstDir);

            //create a queues for file paths one per each thread
            Queue <string>[] fileQueues = new Queue <string> [th_cnt];
            for (int i = 0; i < th_cnt; i++)
            {
                fileQueues[i] = new Queue <string>();
            }

            //main loop for traversing through dirs & files
            int current_thread = 0;

            for (; dirsToTravers.Count > 0; cdirs++)
            {
                string curfolder = dirsToTravers.Dequeue();
                fileQueues[current_thread].Enqueue(curfolder);

                //every new folder should be added to the directory queue
                foreach (string myDir in Directory.EnumerateDirectories(curfolder))
                {
                    print.debug("dir : " + myDir);
                    dirsToTravers.Enqueue(myDir);
                }

                //every new file should be handled
                foreach (string myfile in Directory.EnumerateFiles(curfolder))
                {
                    //continue;
                    print.debug("file: " + myfile);
                    cfiles++;
                    fileQueues[current_thread].Enqueue(myfile);
                    //when current file queue is full create a thread to do the job
                    if (fileQueues[current_thread].Count >= item_per_th_cnt)
                    {
                        my_threads[current_thread] = new Thread(new ParameterizedThreadStart(tsp_oneParamQueueString));
                        my_threads[current_thread].Start(fileQueues[current_thread]);

                        //move to the next thread
                        current_thread = (current_thread + 1) % th_cnt;

                        //wait for the thread to complete before continuing to make sure that the Queue is already empty
                        //[this aproach might be futherly optimize]
                        if (my_threads[current_thread] != null)
                        {
                            my_threads[current_thread].Join();
                        }
                    }
                }
            }

            if (fileQueues[current_thread].Count > 0)
            {
                //last batch of files. Thread {current_thread} is already joined in the above loop
                my_threads[current_thread] = new Thread(new ParameterizedThreadStart(tsp_oneParamQueueString));
                my_threads[current_thread].Start(fileQueues[current_thread]);
            }

            print.debug("//need to wait for the all threads to finish");
            for (int i = 0; i < th_cnt; i++)
            {
                print.debug("//trying to close thread " + i.ToString());
                if (my_threads[i] != null)
                {
                    my_threads[i].Join();
                }
                print.debug("//thread " + i.ToString() + " is closed");
            }


            citems = cfiles + cdirs;

            //disabled single-threaded single-folder version
            if (false)
            {
                foreach (string myfile in Directory.EnumerateFileSystemEntries(myFirstDir))
                {
                    filesToTravers.Enqueue(myfile);
                    citems++;
                }

                for (; filesToTravers.Count > 0;)
                {
                    string myfile = filesToTravers.Dequeue();
                    //j += Program.RemoveInheritance(myfile, true) ? 1 : 0;
                    //Program.RemoveInheritance(myfile, true);
                    Program.RestoreInheritanceAndDeleteAllOtherRules(myfile);
                }
            }

            //calculate time of the run
            DateTime dtend = DateTime.Now;
            TimeSpan ts    = dtend.Subtract(dtstart);

            //print some statistics
            print.info(string.Format("Work finished in : {0:n4} s", ts.TotalSeconds));
            print.info("Number of items: " + citems.ToString() + ", files: " + cfiles + ", dirs: " + cdirs);
            print.info(string.Format("Successfully processed {0} files; Failed processing {1} files", th_itemscnt, th_itemscnt_failed));



            if (writeToLog)
            {
                System.IO.File.WriteAllText(logFilePath, sb_log.ToString());
            }
        }
 public void Log(LogLevels level, string message)
 {
     ExecuteApplication("log", level.ToString().ToUpper() + " " + message, false);
 }
 public void SetSessionLogLevel(LogLevels level)
 {
     ExecuteApplication("session_loglevel", level.ToString().ToLower(), true);
 }
Esempio n. 13
0
        private static void WriteLog(LogLevels level, string format, params object[] args)
        {
            if (!Directory.Exists(LogFolder))
            {
                Directory.CreateDirectory(LogFolder);
            }

            if (level < MinLogLevel)
            {
                return;
            }

            lock (Console.Out)
            {
                string Line = string.Format("[{0}] [{1}] : {2}", DateTime.Now.ToString("HH:mm:ss"), level.ToString(), string.Format(format, args));
                Console.WriteLine(Line);
                try
                {
                    File.AppendAllText(LogFilename, Line + Environment.NewLine);
                }
                catch { } //What do we do about this?
                Console.ForegroundColor = ConsoleColor.Gray;
            }
        }
Esempio n. 14
0
        private static void logToFile(string message, LogLevels level, DateTime dateTime, string exceptionMessage, string stack, int sourceId, int exceptionId)
        {
            try
            {
                var dateString = dateTime.ToString("yyyy/MM/dd hh:mm:sstt");
                var indentStr = new string(' ', dateString.Length + 2); // +2 to accommodate log type and spaces

                if (!string.IsNullOrEmpty(message))
                {
                    message = message.Replace("\r\n", "\r").Replace("\n", "\r").Replace("\r", " | ");
                }

                if (!string.IsNullOrEmpty(exceptionMessage))
                {
                    exceptionMessage = exceptionMessage.Replace("\r\n", "\r").Replace("\n", "\r").Replace("\r", " | ");
                }

                var levelSymbol = level.ToString()[0];

                var logText = "";

                switch (level)
                {
                    case LogLevels.Debug:
                    case LogLevels.Info:
                        // basic non-error logging
                        logText = string.Format(
                             "{0} {1} {2} (Source {3})\r\n",
                             dateString,
                             levelSymbol,
                             message,
                             sourceId);
                        break;

                    case LogLevels.Warning:
                    case LogLevels.Error:
                    case LogLevels.FatalError:
                        // get that stack trace indented!
                        string indentedStack = "";
                        if (stack != null)
                        {
                            indentedStack = stack.Replace("\r\n", "\r\n" + indentStr);
                            indentedStack = indentStr + indentedStack.Substring(0, indentedStack.Length - indentStr.Length);
                        }

                        // log exception details
                        logText = string.Format(
                             "{0} {1} {2} (SourceID {3})\r\n{4} {5} (ExceptionID {6})\r\n{7}\r\n\r\n",
                             dateString,
                             levelSymbol,
                             message,
                             sourceId,
                             indentStr,
                             exceptionMessage,
                             exceptionId,

                             indentedStack);
                        break;
                }

                //log to the correct stream if configured, otherwise log to default location (not efficient as the file is opened each time)
                if (_logFileStream != null)
                {
                    _logFileStream.Write(logText);
                    if ((_logFileMaxSize > 0) && (_logFileStream.BaseStream.Length > _logFileMaxSize))
                    {
                        truncateFile();
                    }
                }
                else
                {
                    lock (_fileLock)
                    {
                        //2012/03/15 - params were the wrong way round!
                        File.AppendAllText(DefaultLogFileName, logText);
                    }
                }
            }
            catch
            {

            }
        }
Esempio n. 15
0
 public static void Log(this object source, LogLevels level, string message, string logWindowID = LogWindows.DefaultLogWindowID)
 {
     // TODO: Add better log logic here!
     LogWindows.SendToWindow(logWindowID, System.DateTime.Now.ToString() + " [ " + level.ToString() + " ] : " + message);
 }
        protected override void LogStatement(string message, LogLevels level)
        {
            var msg = $"{DateTime.Now} :: {level.ToString().PadLeft(12)}:  {message}";

            LogStatement(msg);
        }
Esempio n. 17
0
 private static void SendToAdmin(LogLevels level, string format, params object[] args)
 {
     try {
         string Line = string.Format("[{0}] : {1}", level.ToString (), string.Format(format, args));
         ServerMain.server.sendTextMessageToAdmins(Line);
     }
     catch (Exception) {};
 }
        /// <summary>
        /// Overload to write a message and exception to the logging system
        /// </summary>
        /// <param name="LoggerType">Type of logger to use</param>
        /// <param name="LogLevel">Level of log reporting</param>
        /// <param name="InpMsg">Message to be logged</param>
        /// <param name="Ex">Exception to be logged</param>
        public static void WriteLog(LoggerTypes LoggerType, LogLevels LogLevel, string InpMsg, Exception Ex)
        {
            ILog MyLogger;

            //Establish which logger will be used
            switch (LoggerType)
            {
                case LoggerTypes.LogDb:
                    MyLogger = m_DbLogger;
                    break;
                case LoggerTypes.LogFile:
                    MyLogger = m_FileLogger;
                    // Check to determine if a new file should be started
                    var TestFileDate = DateTime.Now.ToString("MM-dd-yyyy");
                    if (TestFileDate != m_FileDate)
                    {
                        m_FileDate = TestFileDate;
                        ChangeLogFileName();
                    }
                    break;
                case LoggerTypes.LogSystem:
                    MyLogger = m_SysLogger;
                    break;
                default:
                    throw new Exception("Invalid logger type specified");
            }

            //Update the status file data
            clsStatusData.MostRecentLogMessage = DateTime.Now.ToString("MM/dd/yyyy HH:mm:ss") + "; "
                    + InpMsg + "; " + LogLevel.ToString();

            //Send the log message
            switch (LogLevel)
            {
                case LogLevels.DEBUG:
                    if (MyLogger.IsDebugEnabled)
                        MyLogger.Debug(InpMsg, Ex);
                    break;
                case LogLevels.ERROR:
                    clsStatusData.AddErrorMessage(DateTime.Now.ToString("MM/dd/yyyy HH:mm:ss") + "; " + InpMsg
                         + "; " + LogLevel.ToString());

                    if (MyLogger.IsErrorEnabled)
                        MyLogger.Error(InpMsg, Ex);
                    break;
                case LogLevels.FATAL:
                    if (MyLogger.IsFatalEnabled)
                        MyLogger.Fatal(InpMsg, Ex);
                    break;
                case LogLevels.INFO:
                    if (MyLogger.IsInfoEnabled)
                        MyLogger.Info(InpMsg, Ex);
                    break;
                case LogLevels.WARN:
                    if (MyLogger.IsWarnEnabled)
                        MyLogger.Warn(InpMsg, Ex);
                    break;
                default:
                    throw new Exception("Invalid log level specified");
            }
        }
Esempio n. 19
0
        private static void WriteLog(LogLevels level, string format, params object[] args)
        {
            if (!Directory.Exists(LogFolder))
                Directory.CreateDirectory(LogFolder);

            if (level < MinLogLevel) { return; }

            lock (Console.Out)
            {
                string Line = string.Format("[{0}] [{1}] : {2}", DateTime.Now.ToString("HH:mm:ss"), level.ToString(), string.Format(format, args));
                Console.WriteLine(Line);
                try
                {
                    File.AppendAllText(LogFilename, Line + Environment.NewLine);
                }
                catch { } //What do we do about this?
                Console.ForegroundColor = ConsoleColor.Gray;
            }
        }
Esempio n. 20
0
        public void Write(String input, LogLevels level)
        {
            // Check if we even need to handle this level.
            if (level < llevel)
            {
                return;
            }

            if (file == null)
            {
                file = System.IO.File.AppendText(lfile);
            }

            // wait for our mutex to clear before we continue.
            while (!lmutex)
            {
                Thread.Sleep(1);
            }
            // Claim our mutex.
            lmutex = false;

            var msg = String.Format("[{0}][{1}] {2}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), level.ToString(), input);

            Console.WriteLine(msg);
            file.WriteLine(msg);

            // Release our mutex.
            lmutex = true;
        }
Esempio n. 21
0
   /// <summary>
   /// Logs a message to the database logger.
   /// Composes the .ENT format string with the args to prepare the message string.
   /// If logger not defined, logs to the console.
   /// </summary>
   public static void AltLog(LogLevels eventType, int id, string format, params object[] args)
   {
       if (Logger != null)
           Logger.TraceEvent(eventType, id, format, args);
       else
           Console.WriteLine(eventType.ToString() + " " + id + " " + LMLoggers.LognLM.FlattenChars(String.Format(format, args)));
 }
        /// <summary>
        /// Write a message in the log file
        /// </summary>
        private void Write(LogLevels logLevel, string className, string memberName, string message, int numberWriteErrors = 3)
        {
            if (_isActivated)
            {
                StreamWriter sw = null;
                try
                {
                    string fileNameWithDate = $"{DateTime.Now.ToString("yyyy_MM_dd")}_{LogFileName}";
                    string absolutePath     = $"{LogDirectory}/{fileNameWithDate}";
                    string currentDate      = DateTime.Now.ToString("dd/MM/yyyy");
                    string currentTime      = DateTime.Now.ToString("HH:mm:ss");
                    string completeMessage  = $"{currentDate}\t{currentTime}\t{Thread.CurrentThread.ManagedThreadId}\t{logLevel.ToString()}\t{className}\t{memberName}\t{message}";

                    sw = new StreamWriter(absolutePath, true);
                    Console.WriteLine(completeMessage);
                    sw.WriteLine(completeMessage);
                    sw.Flush();
                    sw.Dispose();
                    sw.Close();
                }
                catch
                {
                    Thread.Sleep(500);
                    if (numberWriteErrors > 0)
                    {
                        numberWriteErrors--;
                        Write(logLevel, className, memberName, message, numberWriteErrors);
                    }
                }
            }
        }
Esempio n. 23
0
 private static void ConsoleLog(string message, LogLevels logLevel = LogLevels.Debug)
 {
     Console.WriteLine($"【{logLevel.ToString()}】 {message}");
 }
Esempio n. 24
0
        private async void Log(DateTime dateTimeStamp, LogLevels level, Type logInitiator, string loggedFrom, string message)
        {
            //Always verify the log level before adding a log entry.
            if (level >= _logLevel)
            {
                string methodName;

                switch (level)
                {
                    case LogLevels.All:
                        methodName = "Log";
                        break;
                    case LogLevels.Info:
                        methodName = "LogInfo";
                        break;
                    case LogLevels.Warn:
                        methodName = "LogWarn";
                        break;
                    case LogLevels.Error:
                        methodName = "LogError";
                        break;
                    case LogLevels.Fatal:
                        methodName = "LogFatal";
                        break;
                    default:
                        methodName = "LogDebug";
                        break;
                }

                StringParameters dsp = null;
                if (level == LogLevels.All)
                {
                    dsp = new StringParameters();
                    dsp.Add(new StringParameter(PARAM_NAME_LEVEL, level.ToString()));
                }

                logBase log = new logBase(dateTimeStamp, logInitiator.FullName, loggedFrom, message);

                FacadeResponse<string> fr;

                fr = await JsonFacade.SendRequest<string>(string.Format("{0}{1}", _baseAddress, methodName),
                                                          log, HTTPVerbs.POST, dsp);
            }
        }
Esempio n. 25
0
        private static void WriteLog(LogLevels level, string format, params object[] args)
        {
            if (level < MinLogLevel)
            {
                return;
            }

            string output = string.Format("[{0}] : {1}", level.ToString(), string.Format(format, args));

            switch (level)
            {
                case LogLevels.Debug:
                case LogLevels.Activity:
                case LogLevels.Info:
                case LogLevels.Notice:
                    if (useDelayedLogging)
                    {
                        delayedDebugQueue.Enqueue(output);
                    }
                    else
                    {
                        UnityEngine.Debug.Log(output);
                    }
                    break;
                case LogLevels.Warning:
                    if (useDelayedLogging)
                    {
                        delayedWarningQueue.Enqueue(output);
                    }
                    else
                    {
                        UnityEngine.Debug.LogWarning(output);
                    }
                    break;
                case LogLevels.Error:
                    if (useDelayedLogging)
                    {
                        delayedErrorQueue.Enqueue(output);
                    }
                    else
                    {
                        UnityEngine.Debug.LogError(output);
                    }
                    break;
            }
        }
        private void EnviarLog(LogLevels logLevel, string className, string memberName, string message, int numberWriteErrors = 3)
        {
            try
            {
                string currentDate     = DateTime.Now.ToString("dd/MM/yyyy");
                string currentTime     = DateTime.Now.ToString("HH:mm:ss");
                string completeMessage = $"{currentDate}\t{currentTime}\t{Thread.CurrentThread.ManagedThreadId}\t{logLevel.ToString()}\t{className}\t{memberName}\t{message}";

                request = new DatosRequest();

                //if (HttpContext.Current != null && HttpContext.Current.Request != null)
                if (_httpContextAccessor.HttpContext.Request != null)
                {
                    // Rellenar objeto con los datos (Request)
                    HttpRequest currentRequest = _httpContextAccessor.HttpContext.Request;

                    IRequestCookieCollection listaCookies = currentRequest.Cookies;
                    request.CookieSessionId = currentRequest.Cookies["ASP.NET_SessionId"];

                    string   headers      = "";
                    string[] arrayHeaders = currentRequest.Headers.Keys.ToArray();
                    foreach (string clave in arrayHeaders)
                    {
                        currentRequest.Headers.TryGetValue(clave, out StringValues values);
                        headers += $"{clave} : {string.Join(" ", values)}\n";
                    }
                    request.Headers = headers.TrimEnd();

                    request.HttpMethod = currentRequest.Method;
                    request.RawURL     = currentRequest.GetEncodedUrl();
                    request.URL        = currentRequest.GetDisplayUrl();
                    request.UserAgent  = currentRequest.Headers["User-Agent"];
                    request.Domain     = currentRequest.Host.Value;

                    if (currentRequest.Body != null && currentRequest.Body.Length > 0)
                    {
                        currentRequest.Body.Position = 0;
                        StreamReader streamInputStream = new StreamReader(currentRequest.Body);
                        request.Body = streamInputStream.ReadToEnd();
                    }

                    string ip = currentRequest.Headers["X-FORWARDED-FOR"];
                    if (string.IsNullOrEmpty(ip))
                    {
                        ip         = _httpContextAccessor.HttpContext.Connection.RemoteIpAddress.ToString();
                        request.Ip = ip;
                    }
                }


                // Objeto Anónimo
                var data = new { CurrentDate = currentDate, CurrentTime = currentTime, ThreadId = Thread.CurrentThread.ManagedThreadId, LogLevel = logLevel.ToString(), ClassName = className, MemberName = memberName, Message = message };


                LOG = new LoggerConfiguration()
                      .WriteTo.Http(EndPoint)
                      .CreateLogger();

                switch (logLevel)
                {
                case LogLevels.TRACE:
                    LOG = new LoggerConfiguration()
                          .MinimumLevel.Verbose()
                          .WriteTo.Http(EndPoint)
                          .CreateLogger();

                    LOG.Verbose("{@data}, {@request}", data, request);
                    break;

                case LogLevels.DEBUG:
                    LOG = new LoggerConfiguration()
                          .MinimumLevel.Debug()
                          .WriteTo.Http(EndPoint)
                          .CreateLogger();

                    LOG.Debug("{@data}, {@request}", data, request);
                    break;

                case LogLevels.INFO:
                    LOG.Information("{@data}, {@request}", data, request);
                    break;

                case LogLevels.WARN:
                    LOG.Warning("{@data}, {@request}", data, request);
                    break;

                case LogLevels.ERROR:
                    LOG.Error("{@data}, {@request}", data, request);
                    break;

                case LogLevels.FATAL:
                    LOG.Fatal("{@data}, {@request}", data, request);
                    break;
                }

                Console.WriteLine($"Mensaje Enviado: {completeMessage}");
            }
            catch
            {
                Thread.Sleep(500);
                if (numberWriteErrors > 0)
                {
                    numberWriteErrors--;
                    EnviarLog(logLevel, className, memberName, message, numberWriteErrors);
                }
            }
        }
Esempio n. 27
0
        /// <summary>
        /// Write a message in the log file
        /// </summary>
        private void Write(LogLevels logLevel, string className, string memberName, string message, int numberWriteErrors = 3)
        {
            string currentDate     = DateTime.Now.ToString("dd/MM/yyyy");
            string currentTime     = DateTime.Now.ToString("HH:mm:ss");
            string completeMessage = $"{currentDate}\t{currentTime}\t{Thread.CurrentThread.ManagedThreadId}\t{logLevel.ToString()}\t{className}\t{memberName}\t{message}";

            if (UtilTelemetry.EstaConfiguradaTelemetria && !LogHelper.LogLocation.Equals(LogsAndTracesLocation.File))
            {
                try
                {
                    if (logLevel < LogLevels.ERROR)
                    {
                        UtilTelemetry.EnviarTelemetriaTraza(completeMessage);
                    }
                    else
                    {
                        Exception ex = new Exception(completeMessage);
                        UtilTelemetry.EnviarTelemetriaExcepcion(ex, completeMessage);
                    }
                }
                catch
                { }
            }
        }