Exemple #1
0
        public static void Log(LogLevel level, string message, Exception ex = null)
        {
            LogMessage logMessage = new LogMessage {
                DateLogged = System.DateTime.Now, Level = level, Message = message
            };

            LogMessages.Add(logMessage);
            NewLog?.Invoke(null, new System.ComponentModel.AddingNewEventArgs {
                NewObject = logMessage
            });
            switch (level)
            {
            case LogLevel.Debug: log.Debug(message, ex); break;

            case LogLevel.Info: log.Info(message, ex); break;

            case LogLevel.Warning: log.Warn(message, ex); break;

            case LogLevel.Error: log.Error(message, ex); break;

            case LogLevel.SponsorMessage: log.Info(message, ex); break;

            case LogLevel.Advertisement: log.Info(message, ex); break;
            }
        }
Exemple #2
0
        /// <summary>
        /// Logs a new message and calls all loggers in this factory to inform them of the new log
        /// </summary>
        /// <param name="message">The message to log</param>
        /// <param name="level">The level of severity for this log message. The default is Information</param>
        /// <param name="origin">The origin of this log message. Useful for tracing. The default is the method name of the caller</param>
        /// <example>
        /// From inside MyFunction() => Logger.Log("Some message")
        /// returns: "Some message --MyFunction()"
        /// </example>
        public void Log(string message, LogFactoryLevel level = LogFactoryLevel.Information, [CallerMemberName] string origin = "")
        {
            // Add method name if specified
            if (this.LogMethodName)
            {
                message = string.Format(this.LogMethodNameFormat, message, origin);
            }

            // Send message to all loggers
            mLoggers.ForEach(f => f.Log(level, message));

            SafeWait(() =>
            {
                // Add to list
                mLogHistory.Add(new LogDetails {
                    Date = DateTime.UtcNow, Level = level, Message = message
                });

                // Prune list
                if (mLogHistory.Count > 200)
                {
                    mLogHistory.RemoveAt(0);
                }
            });

            // Inform listeners
            NewLog?.Invoke(message, level);
        }
Exemple #3
0
        public void Write(string log)
        {
            MaxCount = MaxCount > 1 ? MaxCount : 1000;
            MaxCount = MaxCount < 100000 ? MaxCount : 1000;
            var s = $"[{DateTime.Now.ToString("yyyyMMdd HH:mm:ss")}] {log}";

            System.Diagnostics.Debug.WriteLine(s);
            try
            {
                System.IO.File.AppendAllText(File, s + "\r\n");
            }
            catch (Exception ex)
            {
                Items.Add(ex.Message);
            }
            Items.Add(s);
            if (Items.Count > MaxCount)
            {
                var k = Items.Count - MaxCount + 10;
                k = k < Items.Count ? k : Items.Count;
                Items.RemoveRange(Items.Count - k, k);
            }
            NewLog?.Invoke(this, new LogMessage {
                Message = s, Time = DateTime.Now
            });
        }
Exemple #4
0
        /// <summary>
        /// Error log
        /// </summary>
        /// <param name="exception">Exception to log</param>
        /// <param name="objName">CallerMemberName</param>
        public void Error(Exception exception, [CallerMemberName] string objName = "")
        {
            var message = $"[{LoggerName}]\r\nMessage: {exception.Message}\r\nStackTrace: {exception.StackTrace}" +
                          $"\r\nSource: {exception.Source}";

            NewLog?.Invoke(objName, new LogArgs(message, LogLevel.Error, LoggerName));
        }
Exemple #5
0
        private static void Log(LogMessage Message)
        {
            byte[] data = Encoding.UTF8.GetBytes(Message.ToString() + "\r\n");
            fs.Write(data, 0, data.Length);
            fs.Flush();

            NewLog?.Invoke(Message);
        }
Exemple #6
0
    public void OnNewLog(GameObject log)
    {
        var newLog = new LogEventArgs {
            Logs = log
        };

        NewLog?.Invoke(this, newLog);
    }
Exemple #7
0
        public static void Log(LogType Type, ConsoleColor Color, string Severity, string Message)
        {
            LogMessage msg = new LogMessage(Type, Color, Severity, Message);

            messages.Add(msg);
            if (Entrance.IsHandler)
            {
                Console.WriteLine(JsonConvert.SerializeObject(msg));
                NewLog?.Invoke(msg);
            }
            else
            {
                Log(msg);
            }
        }
Exemple #8
0
        /// <summary>
        /// Logs the message to a file
        /// </summary>
        /// <param name="logMessage"> The message to log </param>
        /// <param name="logLevel"> The log's output severity </param>
        /// <param name="callerOrigin"> Where the logger was called from </param>
        /// <param name="filePath"> The path where the log came from </param>
        /// <param name="lineNumber"> The line number where the log was called </param>
        public void Log(string logMessage, LogLevel logLevel = LogLevel.Normal, [CallerMemberName] string callerOrigin = "", [CallerFilePath] string filePath = "", [CallerLineNumber] int lineNumber = 0)
        {
            lock (_synchronizingObject)
            {
                // Setup log message format
                string message =
                    $"[{logLevel}]{Environment.NewLine}" +
                    $"[{Path.GetFileName(filePath)} > {callerOrigin}() > Line: {lineNumber}]" +
                    $"{Environment.NewLine}{logMessage}{Environment.NewLine}";

                // Write log message to log file
                File.AppendAllText(AppFiles.LogFilePath, message);

                // Invoke log event
                NewLog?.Invoke(logMessage, logLevel);
            };
        }
        public static void Log(LogLevel level, string msg, Exception ex = null)
        {
            switch (level)
            {
            case LogLevel.Info:
                log.Info(msg, ex);
                break;

            case LogLevel.Debug:
                log.Debug(msg, ex);
                break;

            case LogLevel.Warn:
                log.Warn(msg, ex);
                break;

            case LogLevel.Error:
                log.Error(msg, ex);
                break;
            }
            NewLog?.Invoke(null, new LogEventArgs(level, msg, ex));
        }
Exemple #10
0
 /// <summary>
 /// Information log
 /// </summary>
 /// <param name="message">Message to log</param>
 /// <param name="objName">CallerMemberName</param>
 public void Information(string message, [CallerMemberName] string objName = "")
 {
     NewLog?.Invoke(objName, new LogArgs(message, LogLevel.Info, LoggerName));
 }
Exemple #11
0
 private static void OnNewLog(string text)
 {
     NewLog?.Invoke(text);
 }
Exemple #12
0
 /// <inheritdoc />
 public void Info(string message) => NewLog?.Invoke(this, new LogMessage(IMarkDocLogger.LogType.Info, message));
Exemple #13
0
 protected void Log(string text) => NewLog?.Invoke(text);
Exemple #14
0
 /// <inheritdoc />
 public void Error(string message) => NewLog?.Invoke(this, new LogMessage(IMarkDocLogger.LogType.Error, message));
Exemple #15
0
 /// <inheritdoc />
 public void Warning(string message) => NewLog?.Invoke(this, new LogMessage(IMarkDocLogger.LogType.Warning, message));
Exemple #16
0
        /// <summary>
        /// Logs the message to console
        /// </summary>
        /// <param name="logMessage"> The message to log </param>
        /// <param name="logLevel"> The log's output severity </param>
        /// <param name="callerOrigin"> Where the logger was called from </param>
        /// <param name="filePath"> The path where the log came from </param>
        /// <param name="lineNumber"> The line number where the log was called </param>
        public void Log(string logMessage, LogLevel logLevel = LogLevel.Info, [CallerMemberName] string callerOrigin = "", [CallerFilePath] string filePath = "", [CallerLineNumber] int lineNumber = 0)
        {
            lock (_synchronizatingObject)
            {
                // Writes the LogLevel in a format I like
                var writeLogLevel = new Action <LogLevel, ConsoleColor>((logLevel, colour) =>
                {
                    // Write first character
                    Console.Write('[');

                    // Set colour and write the log level
                    Console.ForegroundColor = colour;
                    Console.Write($"{logLevel}");

                    // Reset console colours and add the last bracket
                    Console.ResetColor();
                    Console.WriteLine(']');
                });


                // Setup message format
                switch (logLevel)
                {
                case LogLevel.Info:
                {
                    writeLogLevel(logLevel, ConsoleColor.Gray);
                    break;
                };

                case LogLevel.Warning:
                {
                    writeLogLevel(logLevel, ConsoleColor.Yellow);
                    break;
                };

                case LogLevel.Error:
                {
                    writeLogLevel(logLevel, ConsoleColor.Red);
                    break;
                };

                case LogLevel.Critical:
                {
                    writeLogLevel(logLevel, ConsoleColor.DarkRed);
                    break;
                };


                default:
                {
                    writeLogLevel(logLevel, ConsoleColor.Gray);
                    break;
                };
                }
                ;


                // Setup log message format
                string message = $"[{Path.GetFileName(filePath)} > {callerOrigin}() > Line: {lineNumber}]" +
                                 $"{Environment.NewLine}{logMessage}{Environment.NewLine}";

                // Log to the console
                Console.WriteLine(message);

                // Invoke event
                NewLog?.Invoke(logMessage, logLevel);
            };
        }
Exemple #17
0
 protected virtual void OnNewLog(string prio, string message, Exception ex = null)
 {
     NewLog?.Invoke(this, new NewLogEventArgs(prio, message, ex));
 }
Exemple #18
0
 /// <summary>
 /// Warning log
 /// </summary>
 /// <param name="message">Message to log</param>
 /// <param name="objName">CallerMemberName</param>
 public void Warning(string message, [CallerMemberName] string objName = "")
 {
     NewLog?.Invoke(objName, new LogArgs(message, LogLevel.Warning, LoggerName));
 }