示例#1
0
 public static ILogging CreateProxy(this ILoggingBase self, string prefix, MyLogSeverity level)
 {
     return(new LoggingProxy(self, prefix)
     {
         Level = level
     });
 }
示例#2
0
文件: MyLog.cs 项目: viktorius/Viktor
        public void Log(MyLogSeverity severity, StringBuilder builder)
        {
            if (m_enabled)
            {
                lock (m_lock)
                {
                    if (m_enabled)
                    {
                        WriteDateTimeAndThreadId();

                        StringBuilder sb = m_stringBuilder;
                        sb.Clear();

                        sb.AppendFormat("{0}: ", severity);
                        sb.AppendStringBuilder(builder);
                        sb.Append('\n');

                        WriteStringBuilder(sb);

                        if ((int)severity >= (int)AssertLevel)
                        {
                            SystemTrace.Fail(sb.ToString());
                        }
                    }
                }
            }
        }
示例#3
0
 public void Log(MyLogSeverity severity, string format, params object[] args)
 {
     if ((int)severity < (int)Level)
     {
         return;
     }
     LogRoot(severity, "", format, args);
 }
示例#4
0
 public void Log(MyLogSeverity severity, StringBuilder message)
 {
     if ((int)severity < (int)LogLevel)
     {
         return;
     }
     Write(message);
 }
示例#5
0
 public void Log(MyLogSeverity severity, StringBuilder message)
 {
     if ((int)severity < (int)Level)
     {
         return;
     }
     Backing.LogRoot(severity, Prefix, message);
 }
示例#6
0
 public void Log(MyLogSeverity severity, string message)
 {
     if ((int)severity < (int)Level)
     {
         return;
     }
     LogRoot(severity, "", message);
 }
示例#7
0
 private static LogLevel LogLevelFor(MyLogSeverity severity)
 {
     return(severity switch
     {
         MyLogSeverity.Debug => LogLevel.Debug,
         MyLogSeverity.Info => LogLevel.Info,
         MyLogSeverity.Warning => LogLevel.Warn,
         MyLogSeverity.Error => LogLevel.Error,
         MyLogSeverity.Critical => LogLevel.Fatal,
         _ => LogLevel.Info
     });
示例#8
0
        public void Log(MyLogSeverity severity, StringBuilder builder)
        {
            StringBuilder sb = new StringBuilder();

            sb.AppendFormat("{0}: ", severity);
            sb.AppendStringBuilder(builder);
            sb.Append('\n');

            WriteStringBuilder(sb);

            if ((int)severity >= (int)AssertLevel)
            {
                SystemTrace.Fail(sb.ToString());
            }
        }
示例#9
0
        public void Log(MyLogSeverity severity, string format, params object[] args)
        {
            StringBuilder sb = new StringBuilder();

            sb.AppendFormat("{0}: ", severity);
            sb.AppendFormat(format, args);
            sb.Append('\n');

            WriteStringBuilder(sb);

            if ((int)severity >= (int)AssertLevel)
            {
                SystemTrace.Fail(sb.ToString());
            }
        }
示例#10
0
        public override void LoadConfiguration(Ob_ModSessionComponent config)
        {
            if (config == null)
            {
                return;
            }
            var up = config as Ob_LoggerBase;

            if (up == null)
            {
                Log(MyLogSeverity.Critical, "Configuration type {0} doesn't match component type {1}", config.GetType(), GetType());
                return;
            }
            LogLevel = up.LogLevel;
        }
示例#11
0
 public void Log(MyLogSeverity severity, StringBuilder message)
 {
     if (m_logger != null)
     {
         m_logger.Log(severity, message);
     }
     else if (Manager != null)
     {
         Manager.FallbackLogger.Log(severity, GetType().Name + ": " + message);
     }
     else
     {
         MyLog.Default.Log(severity, GetType().Name + ": " + message);
     }
 }
示例#12
0
 public void Log(MyLogSeverity severity, string format, params object[] args)
 {
     if (m_logger != null)
     {
         m_logger.Log(severity, format, args);
     }
     else if (Manager != null)
     {
         Manager.FallbackLogger.Log(severity, GetType().Name + ": " + format, args);
     }
     else
     {
         MyLog.Default.Log(severity, GetType().Name + ": " + format, args);
     }
 }
示例#13
0
 public void Log(MyLogSeverity severity, string prefix, string format, params object[] args)
 {
     if ((int)severity < (int)LogLevel)
     {
         return;
     }
     lock (_messageBuilder)
     {
         _messageBuilder.Append(prefix);
         _messageBuilder.Append(_indentBuilder);
         _messageBuilder.AppendFormat(" {0}: ", severity);
         _messageBuilder.AppendFormat(format, args);
         Write(_messageBuilder);
         _messageBuilder.Clear();
     }
 }
示例#14
0
 public void Log(MyLogSeverity severity, string prefix, StringBuilder message)
 {
     if ((int)severity < (int)LogLevel)
     {
         return;
     }
     lock (_messageBuilder)
     {
         _messageBuilder.Append(prefix);
         _messageBuilder.Append(_indentBuilder);
         _messageBuilder.AppendFormat("{0}: ", severity);
         _messageBuilder.Append(message);
         Write(_messageBuilder);
         _messageBuilder.Clear();
     }
 }
示例#15
0
        public void LogRoot(MyLogSeverity severity, string prefix, StringBuilder message)
        {
            lock (_messageBuilder)
            {
                _messageBuilder.Append(prefix);
                _messageBuilder.Append(_indentBuilder);
                _messageBuilder.AppendFormat("{0}: ", severity);
                _messageBuilder.Append(message);
                Write(_messageBuilder);
                _messageBuilder.Clear();
            }

            if (severity >= MyLogSeverity.Error)
            {
                Flush();
            }
        }
示例#16
0
        public void LogRoot(MyLogSeverity severity, string prefix, string format, params object[] args)
        {
            lock (_messageBuilder)
            {
                _messageBuilder.Append(prefix);
                _messageBuilder.Append(_indentBuilder);
                _messageBuilder.AppendFormat(" {0}: ", severity);
                _messageBuilder.AppendFormat(format, args);
                Write(_messageBuilder);
                _messageBuilder.Clear();
            }

            if (severity >= MyLogSeverity.Error)
            {
                Flush();
            }
        }
示例#17
0
        private static bool PrefixLogFormatted(MyLog __instance, MyLogSeverity severity, string format, object[] args)
        {
            // Sometimes this is called with a pre-formatted string and no args
            // and causes a crash when the format string contains braces
            var sb = PrepareLog(__instance);

            if (args != null && args.Length > 0)
            {
                sb.AppendFormat(format, args);
            }
            else
            {
                sb.Append(format);
            }

            _log.Log(LogLevelFor(severity), sb);
            return(false);
        }
示例#18
0
        public void Log(MyLogSeverity severity, string prefix, string format, params object[] args)
        {
            var logger = m_manager.GetDependencyProvider <LoggerBase>();

            if (logger != null && logger.IsAttached)
            {
                logger.Log(severity, prefix, format, args);
            }
            else
            {
                lock (m_builder)
                {
                    m_builder.EnsureCapacity(format.Length + 4);
                    m_builder.Append("EPW: ").Append(prefix).AppendFormat(format, args);
                    MyLog.Default?.Log(severity, m_builder);
                    m_builder.Clear();
                }
            }
        }
示例#19
0
        public void Log(MyLogSeverity severity, StringBuilder message)
        {
            var logger = m_manager.GetDependencyProvider <LoggerBase>();

            if (logger != null && logger.IsAttached)
            {
                logger.Log(severity, message);
            }
            else
            {
                lock (m_builder)
                {
                    m_builder.EnsureCapacity(message.Length + 4);
                    m_builder.Append("EPW: ").Append(message);
                    MyLog.Default?.Log(severity, m_builder);
                    m_builder.Clear();
                }
            }
        }
示例#20
0
        private static LogLevel LogLevelFor(MyLogSeverity severity)
        {
            switch (severity)
            {
            case MyLogSeverity.Debug:
                return(LogLevel.Debug);

            case MyLogSeverity.Info:
                return(LogLevel.Info);

            case MyLogSeverity.Warning:
                return(LogLevel.Warn);

            case MyLogSeverity.Error:
                return(LogLevel.Error);

            case MyLogSeverity.Critical:
                return(LogLevel.Fatal);

            default:
                return(LogLevel.Info);
            }
        }
示例#21
0
 public void Log(MyLogSeverity severity, string format, params object[] args)
 {
     Backing.Log(severity, Prefix, format, args);
 }
示例#22
0
 private static bool PrefixLogStringBuilder(MyLog __instance, MyLogSeverity severity, StringBuilder builder)
 {
     _log.Log(LogLevelFor(severity), PrepareLog(__instance).Append(builder));
     return(false);
 }
示例#23
0
 public static void Log(MyLogSeverity level, string message)
 {
     MyLog.Default.Log(level, $"[KingOfTheHill] {message}");
     MyLog.Default.Flush();
 }
示例#24
0
 private static bool PrefixLogFormatted(MyLog __instance, MyLogSeverity severity, string format, object[] args)
 {
     _log.Log(LogLevelFor(severity), PrepareLog(__instance).AppendFormat(format, args));
     return(false);
 }
示例#25
0
        public void Log(MyLogSeverity severity, StringBuilder builder)
        {
            StringBuilder sb = new StringBuilder();

            sb.AppendFormat("{0}: ", severity);
            sb.AppendStringBuilder(builder);
            sb.Append('\n');

            WriteStringBuilder(sb);

            if ((int)severity >= (int)AssertLevel)
                SystemTrace.Fail(sb.ToString());
        }
示例#26
0
        public void Log(MyLogSeverity severity, string format, params object[] args)
        {
            StringBuilder sb = new StringBuilder();

            sb.AppendFormat("{0}: ", severity);
            sb.AppendFormat(format, args);
            sb.Append('\n');

            WriteStringBuilder(sb);

            if ((int)severity >= (int)AssertLevel)
                SystemTrace.Fail(sb.ToString());
        }
示例#27
0
 public void Log(MyLogSeverity severity, string format, params object[] args)
 {
     Log(severity, "", format, args);
 }
示例#28
0
        public void Log(MyLogSeverity severity, StringBuilder builder)
        {
            if (m_enabled)
            {
                lock (m_lock)
                {
                    WriteDateTimeAndThreadId();

                    StringBuilder sb = m_stringBuilder;
                    sb.Clear();

                    sb.AppendFormat("{0}: ", severity);
                    sb.AppendStringBuilder(builder);
                    sb.Append('\n');

                    WriteStringBuilder(sb);

                    if ((int)severity >= (int)AssertLevel)
                        SystemTrace.Fail(sb.ToString());
                }
            }
        }
示例#29
0
 public void Log(MyLogSeverity severity, StringBuilder message)
 {
     Backing.Log(severity, Prefix, message);
 }
示例#30
0
 private static void Add(Type t, MyLogSeverity s)
 {
     // ReSharper disable once AssignNullToNotNullAttribute
     _levels.Add(t.FullName, s);
 }
示例#31
0
 private static void AddNamespace(Type t, MyLogSeverity s)
 {
     // ReSharper disable once PossibleNullReferenceException
     _levels.Add(t.FullName.Substring(0, t.FullName.LastIndexOf('.')), s);
 }