示例#1
0
        //============================================================
        // <T>输出信息。</T>
        //
        // @param level 级别
        // @param refer 引用对象
        // @param method 函数名称
        // @param exception 例外对象
        // @param message 消息内容
        // @param parameters 参数集合
        //============================================================
        public override void Output(ELoggerLevel level, object refer, string method, Exception exception, string message, params object[] parameters)
        {
            FString format = new FString();

            Format(format, level, refer, method, exception, message, parameters);
            Console.WriteLine(format);
        }
示例#2
0
 //============================================================
 // <T>格式化。</T>
 //
 // @param buffer 字符串对象
 // @param level 级别
 //============================================================
 public virtual void FormatMessage(FString format, ELoggerLevel level, object refer, string method, Exception exception, string message, object[] parameters)
 {
     // 追加函数信息
     format += "[";
     if (refer is Type)
     {
         format += ((Type)refer).Name + '.' + method;
     }
     else
     {
         format += refer.GetType().Name + '.' + method;
         if (refer != null)
         {
             format += '@' + refer.GetHashCode().ToString("6X").ToUpper();
         }
     }
     format.AppendRepeat(' ', METHOD_SPACE - format.Length);
     format += "] ";
     // 追加信息内容
     if (null != parameters)
     {
         format += String.Format(message, parameters);
     }
     // 追加例外内容
     if (null != exception)
     {
         format.AppendLine();
         RException.MakeMessage(format, exception);
     }
 }
示例#3
0
 //============================================================
 // <T>格式化。</T>
 //
 // @param buffer 字符串对象
 // @param level 级别
 //============================================================
 public virtual void Format(FString format, ELoggerLevel level, object refer, string method, Exception exception, string message, object[] parameters)
 {
     // 追加时间
     format += RDate.Format(_dateFormat) + ' ';
     // 追加级别
     AppendLevel(format, level);
     // 追加线程编号
     format += ':' + Thread.CurrentThread.ManagedThreadId.ToString("X2");
     // 追加函数信息
     if (refer is Type)
     {
         format += "-<static> [";
         format += ((Type)refer).Name + '.' + method;
     }
     else
     {
         format += "-" + refer.GetHashCode().ToString("X8") + " [";
         format += refer.GetType().Name + '.' + method;
     }
     format.AppendRepeat(' ', LOGGER_SPACE - format.Length);
     format += "] ";
     // 追加信息内容
     if (null != parameters)
     {
         format += String.Format(message, parameters);
     }
     // 追加例外内容
     if (null != exception)
     {
         format.AppendLine();
         RException.MakeMessage(format, exception);
     }
 }
示例#4
0
        //============================================================
        // <T>追加级别。</T>
        //
        // @param buffer 字符串对象
        // @param level 级别
        //============================================================
        protected void AppendLevel(FString buffer, ELoggerLevel level)
        {
            switch (level)
            {
            case ELoggerLevel.Debug:
                buffer.Append('D');
                break;

            case ELoggerLevel.Info:
                buffer.Append('I');
                break;

            case ELoggerLevel.Warn:
                buffer.Append('W');
                break;

            case ELoggerLevel.Error:
                buffer.Append('E');
                break;

            case ELoggerLevel.Fatal:
                buffer.Append('F');
                break;
            }
        }
示例#5
0
 //============================================================
 // <T>输出消息。</T>
 //
 // @param refer 引用对象
 // @param method 函数名称
 // @param exception 例外对象
 // @param message 消息内容
 // @param parameters 消息参数
 //============================================================
 public static void Output(ELoggerLevel level, object refer, string method, Exception exception, string message, params object[] parameters)
 {
     if (null != _console)
     {
         _console.Write(level, refer, method, exception, message, parameters);
     }
 }
示例#6
0
 //============================================================
 // <T>输出消息。</T>
 //
 // @param refer 引用对象
 // @param method 函数名称
 // @param exception 例外对象
 // @param message 消息内容
 // @param parameters 消息参数
 //============================================================
 public void Write(ELoggerLevel level, object refer, string method, Exception exception, string message, params object[] parameters)
 {
     // 监听处理
     foreach (IListener listener in _listeners)
     {
         listener.Process(this, level, refer, method, exception, message, parameters);
     }
 }
示例#7
0
        public void Log(string message, ELoggerLevel level, Exception exception = null)
        {
            string loggerMessage = "[" + DateTime.Now + "]" + " [" + level + "] " + message;

            if (exception != null)
            {
                loggerMessage += "[EXCEPTION] " + exception.Message;
            }
            Execute(loggerMessage);
        }
示例#8
0
        public void Log <T>(string message, ELoggerLevel level, List <T> list) where T : IComparable <T>
        {
            string loggerMessage = "[" + DateTime.Now + "]" + " [" + level + "] " + message + " [LIST] : (";

            for (int i = 0; i < list.Count; ++i)
            {
                loggerMessage += list[i] + (i != (list.Count - 1) ? ", " : " )");
            }

            Execute(loggerMessage);
        }
示例#9
0
        public void Log <T>(string message, ELoggerLevel level, T[] array) where T : IComparable <T>
        {
            string loggerMessage = "[" + DateTime.Now + "]" + " [" + level + "] " + message + " [ARRAY] : (";

            for (int i = 0; i < array.Length; ++i)
            {
                loggerMessage += array[i] + (i != (array.Length - 1) ? ", " : " )");
            }

            Execute(loggerMessage);
        }
示例#10
0
        //============================================================
        // <T>监听处理。</T>
        //
        // @param buffer 字符串对象
        // @param level 级别
        //============================================================
        public override void Process(object sender, params object[] args)
        {
            // 获得参数
            ELoggerLevel level     = (ELoggerLevel)args[0];
            object       refer     = args[1];
            string       method    = (string)args[2];
            Exception    exception = (Exception)args[3];
            string       message   = (string)args[4];

            object[] parameters = (object[])args[5];
            // 输出信息
            Output(level, refer, method, exception, message, parameters);
        }
示例#11
0
 //============================================================
 // <T>输出信息。</T>
 //
 // @param level 级别
 // @param refer 引用对象
 // @param method 函数名称
 // @param exception 例外对象
 // @param message 消息内容
 // @param parameters 参数集合
 //============================================================
 public abstract void Output(ELoggerLevel level, object refer, string method, Exception exception, string message, params object[] parameters);
示例#12
0
        public void Log <T>(string message, ELoggerLevel level, T value) where T : IComparable <T>
        {
            string loggerMessage = "[" + DateTime.Now + "]" + " [" + level + "] " + message + " [VALUE] : " + value;

            Execute(loggerMessage);
        }