LogSharp.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using System;
  2. namespace Urho
  3. {
  4. public static class LogSharp
  5. {
  6. public static LogSharpLevel LogLevel { get; set; } = LogSharpLevel.Debug;
  7. public static void Error(string str, Exception exc = null) => Write(LogSharpLevel.Error, $"Exception: {exc}. " + str);
  8. public static void Warn(string str) => Write(LogSharpLevel.Warn, str);
  9. public static void Debug(string str) => Write(LogSharpLevel.Debug, str);
  10. public static void Trace(string str) => Write(LogSharpLevel.Trace, str);
  11. static void Write(LogSharpLevel level, string str)
  12. {
  13. if (level < LogLevel)
  14. return;
  15. #if ANDROID
  16. Android.Util.LogPriority logPriority = Android.Util.LogPriority.Verbose;
  17. switch (level)
  18. {
  19. case LogSharpLevel.Trace:
  20. logPriority = Android.Util.LogPriority.Verbose;
  21. break;
  22. case LogSharpLevel.Debug:
  23. logPriority = Android.Util.LogPriority.Debug;
  24. break;
  25. case LogSharpLevel.Warn:
  26. logPriority = Android.Util.LogPriority.Warn;
  27. break;
  28. case LogSharpLevel.Error:
  29. logPriority = Android.Util.LogPriority.Error;
  30. break;
  31. }
  32. Android.Util.Log.WriteLine(logPriority, "UrhoSharp", str);
  33. #else
  34. System.Diagnostics.Debug.WriteLine($"{level}: {str}");
  35. #endif
  36. }
  37. }
  38. public enum LogSharpLevel
  39. {
  40. Trace,
  41. Debug,
  42. Warn,
  43. Error
  44. }
  45. }