Ejemplo n.º 1
0
        /// <summary>
        /// Appends the log message to a file. Creates the file if it doesn't exist.
        /// </summary>
        /// <param name="level"></param>
        /// <param name="msg"></param>
        /// <param name="ex"></param>
        /// <returns></returns>
        public override void WriteLogMessage(BaConLogLevel level, string msg, Exception ex)
        {
            var log = FormatMessage(level, msg, ex);

            if (!log.HasValue())
            {
                return;
            }
            File.AppendAllText(FilePath, log);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Use the BaConConsoleLogger. Sets the min level.
        /// </summary>
        /// <param name="filePath">Path to the file to write the log to.</param>
        /// <param name="minLevel">Lowest level of message to log to the file.</param>
        /// <returns></returns>
        public static BaConFileLogger UseFileLogger(string filePath, BaConLogLevel minLevel = BaConLogLevel.Trace)
        {
            var logger = FindFileLogger(filePath);

            if (logger == null || logger.FilePath.Equals(filePath, StringComparison.OrdinalIgnoreCase))
            {
                logger = new BaConFileLogger(filePath);
                Loggers.Add(logger);
            }
            logger.MinLogLevel = minLevel;
            return(logger);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Use the BaConConsoleLogger. Sets the min level.
        /// </summary>
        /// <param name="minLevel"></param>
        /// <returns></returns>
        public static T UseLogger <T>(BaConLogLevel minLevel = BaConLogLevel.Trace) where T : BaConLogger, new()
        {
            var logger = FindLogger <T>();

            if (logger == null)
            {
                logger = new T();
                Loggers.Add(logger);
            }
            logger.MinLogLevel = minLevel;
            return(logger);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Applies the MessageTemplate to the message.
        /// </summary>
        /// <param name="level"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        protected virtual string FormatMessage(BaConLogLevel level, string msg)
        {
            var tmp = MessageTemplate.Tmpl(new
            {
                Message   = msg,
                Now       = DateTime.Now,
                Level     = level,
                ProcessID = Application.ProcessID,
                ThreadID  = Thread.CurrentThread.ManagedThreadId
            });

            return(tmp);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Write the log message to the console.
        /// </summary>
        /// <param name="level"></param>
        /// <param name="msg"></param>
        /// <param name="ex"></param>
        public override void WriteLogMessage(BaConLogLevel level, string msg, Exception ex)
        {
            var log = FormatMessage(level, msg, ex);

            if (!log.HasValue())
            {
                return;
            }

            using (GetLevelColor(level))
            {
                BaCon.WriteLine(log, indentN: "\t");
            }
        }
Ejemplo n.º 6
0
        private BaConColor GetLevelColor(BaConLogLevel level)
        {
            switch (level)
            {
            case BaConLogLevel.Trace: return(new BaConColor(BaCon.Theme.LogTraceColor));

            case BaConLogLevel.Debug: return(new BaConColor(BaCon.Theme.LogDebugColor));

            case BaConLogLevel.Info: return(new BaConColor(BaCon.Theme.LogInfoColor));

            case BaConLogLevel.Warn: return(new BaConColor(BaCon.Theme.LogWarnColor));

            case BaConLogLevel.Error: return(new BaConColor(BaCon.Theme.LogErrorColor));

            case BaConLogLevel.Fatal: return(new BaConColor(BaCon.Theme.LogFatalColor));

            default: return(new BaConColor(null));
            }
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Applies the ErrorTemplate to the exception.
        /// </summary>
        /// <param name="level"></param>
        /// <param name="ex"></param>
        /// <returns></returns>
        protected virtual string FormatError(BaConLogLevel level, Exception ex)
        {
            if (ex == null)
            {
                return(null);
            }

            var log   = new StringBuilder();
            var tmpl  = ErrorTemplate1;
            var curEx = ex;

            while (curEx != null)
            {
                if (tmpl != null)
                {
                    var data = new
                    {
                        ExceptionMsg  = ex.Message,
                        StackTrace    = ex.StackTrace,
                        ExceptionType = ex.GetType().FullName,
                        Now           = DateTime.Now,
                        Level         = level,
                        ProcessID     = Application.ProcessID,
                        ThreadID      = Thread.CurrentThread.ManagedThreadId
                    };

                    var str = tmpl.Tmpl(data);
                    log.AppendLine(str);
                }

                curEx = curEx.InnerException;
                tmpl  = ErrorTemplateN;
                if (tmpl == null)
                {
                    break;
                }
            }

            return(log.ToString());
        }
Ejemplo n.º 8
0
        private static void WriteLogMessage(BaConLogLevel level, string msg, Exception ex)
        {
            if (Loggers.Count == 0)
            {
                System.Diagnostics.Debug.WriteLine("No log adapters are set. Logging to Debug. Add loggers to BaCon.Loggers");
                if (msg.HasValue())
                {
                    System.Diagnostics.Debug.WriteLine(msg);
                }
                if (ex != null)
                {
                    System.Diagnostics.Debug.WriteLine(ex.GetDetails());
                }
                return;
            }

            foreach (var logger in Loggers)
            {
                if (logger.ShouldWriteLogMessage(level, msg, ex))
                {
                    logger.WriteLogMessage(level, msg, ex);
                }
            }
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Formats the log message.
        /// </summary>
        /// <param name="level"></param>
        /// <param name="msg"></param>
        /// <param name="ex"></param>
        /// <returns></returns>
        protected virtual string FormatMessage(BaConLogLevel level, string msg, Exception ex)
        {
            if (MessageTemplate == null)
            {
                return(msg);
            }

            var log = new StringBuilder();

            var tmp = FormatMessage(level, msg);

            if (tmp != null)
            {
                log.AppendLine(tmp);
            }

            tmp = FormatError(level, ex);
            if (tmp != null)
            {
                log.AppendLine(tmp);
            }

            return(log.ToString());
        }
Ejemplo n.º 10
0
 public override void WriteLogMessage(BaConLogLevel level, string msg, Exception ex)
 {
     Console.WriteLine(msg);
 }
Ejemplo n.º 11
0
 /// <summary>
 /// Determines if the log message should be written or not.
 /// </summary>
 /// <param name="level">The log level to write.</param>
 /// <param name="msg">The message to write.</param>
 /// <param name="ex">The exception to write.</param>
 /// <returns></returns>
 protected internal virtual bool ShouldWriteLogMessage(BaConLogLevel level, string msg, Exception ex)
 {
     return(level >= MinLogLevel);
 }
Ejemplo n.º 12
0
 /// <summary>
 /// Write the log message.
 /// </summary>
 /// <param name="level">The log level of the message.</param>
 /// <param name="msg">The message to log.</param>
 /// <param name="ex">An optional exception to write to the log.</param>
 public abstract void WriteLogMessage(BaConLogLevel level, string msg, Exception ex);