Ejemplo n.º 1
0
            public bool Log(TcLogLevel logLevel, Func <string> messageFunc, Exception exception,
                            params object[] formatParameters)
            {
                if (messageFunc == null)
                {
                    return(true);
                }

                messageFunc = LogMessageFormatter.SimulateStructuredLogging(messageFunc, formatParameters);

                Write(logLevel, messageFunc(), exception);
                return(true);
            }
Ejemplo n.º 2
0
            protected void Write(TcLogLevel logLevel, string message, Exception e = null)
            {
                var formattedMessage = MessageFormatter(_name, logLevel, message, e);

                if (Colors.TryGetValue(logLevel, out var color))
                {
                    var originalColor = System.Console.ForegroundColor;
                    try
                    {
                        System.Console.ForegroundColor = color;
                        System.Console.WriteLine(formattedMessage);
                    }
                    finally
                    {
                        System.Console.ForegroundColor = originalColor;
                    }
                }
                else
                {
                    System.Console.WriteLine(formattedMessage);
                }
            }
Ejemplo n.º 3
0
        public bool Log(TcLogLevel logLevel, Func <string> messageFunc, Exception exception = null, params object[] formatParameters)
        {
            if (messageFunc == null)
            {
                return(_logger(logLevel, null));
            }

            Func <string> wrappedMessageFunc = () =>
            {
                try
                {
                    return(messageFunc());
                }
                catch (Exception ex)
                {
                    Log(TcLogLevel.Error, () => FailedToGenerateLogMessage, ex);
                }

                return(null);
            };

            return(_logger(logLevel, wrappedMessageFunc, exception, formatParameters));
        }
Ejemplo n.º 4
0
        private static string MessageFormatter(string loggerName, TcLogLevel level, object message, Exception e)
        {
            var stringBuilder = new StringBuilder();

            stringBuilder.Append(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture));
            stringBuilder.Append(" ");

            // Append a readable representation of the log level
            stringBuilder.Append(("[" + level.ToString().ToUpper() + "]").PadRight(8));
            stringBuilder.Append("(" + loggerName + ") ");

            // Append the message
            stringBuilder.Append(message);

            // Append stack trace if there is an exception
            if (e != null)
            {
                stringBuilder.Append(Environment.NewLine).Append(e.GetType());
                stringBuilder.Append(Environment.NewLine).Append(e.Message);
                stringBuilder.Append(Environment.NewLine).Append(e.StackTrace);
            }

            return(stringBuilder.ToString());
        }
Ejemplo n.º 5
0
 public bool IsLogLevelEnabled(TcLogLevel logLevel) => _logger(logLevel, null);
Ejemplo n.º 6
0
 private static void LogFormat(this ITcLog logger, TcLogLevel logLevel, string message, params object[] args)
 {
     logger.Log(logLevel, message.AsFunc(), null, args);
 }