diff --git a/.gitignore b/.gitignore index 11f25e50..901e06b8 100644 --- a/.gitignore +++ b/.gitignore @@ -329,5 +329,5 @@ ASALocalRun/ # MFractors (Xamarin productivity tool) working folder .mfractor/ -!Common/Log/ +!Common/Common/Log/ Doc/ \ No newline at end of file diff --git a/Common/Common/Log/LCLogLevel.cs b/Common/Common/Log/LCLogLevel.cs new file mode 100644 index 00000000..f43aaf58 --- /dev/null +++ b/Common/Common/Log/LCLogLevel.cs @@ -0,0 +1,19 @@ +namespace LeanCloud { + /// + /// 日志级别 + /// + public enum LCLogLevel { + /// + /// 调试级别 + /// + Debug, + /// + /// 警告级别 + /// + Warn, + /// + /// 错误级别 + /// + Error, + } +} diff --git a/Common/Common/Log/LCLogger.cs b/Common/Common/Log/LCLogger.cs new file mode 100644 index 00000000..1ffbcac4 --- /dev/null +++ b/Common/Common/Log/LCLogger.cs @@ -0,0 +1,51 @@ +using System; +using System.Text; + +namespace LeanCloud { + /// + /// 日志类 + /// + public static class LCLogger { + /// + /// 日志回调接口,方便开发者调试 + /// + /// The log delegate. + public static Action LogDelegate { + get; set; + } + + public static void Debug(string log) { + LogDelegate?.Invoke(LCLogLevel.Debug, log); + } + + public static void Debug(string format, params object[] args) { + LogDelegate?.Invoke(LCLogLevel.Debug, string.Format(format, args)); + } + + public static void Warn(string log) { + LogDelegate?.Invoke(LCLogLevel.Warn, log); + } + + public static void Warn(string format, params object[] args) { + LogDelegate?.Invoke(LCLogLevel.Warn, string.Format(format, args)); + } + + public static void Error(string log) { + LogDelegate?.Invoke(LCLogLevel.Error, log); + } + + public static void Error(string format, params object[] args) { + LogDelegate?.Invoke(LCLogLevel.Error, string.Format(format, args)); + } + + public static void Error(Exception e) { + StringBuilder sb = new StringBuilder(); + sb.Append(e.GetType()); + sb.Append("\n"); + sb.Append(e.Message); + sb.Append("\n"); + sb.Append(e.StackTrace); + Error(sb.ToString()); + } + } +}