Logger.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using Bridge;
  2. using System;
  3. namespace Logging
  4. {
  5. public static class Logger
  6. {
  7. private static readonly Action<object> DebugAction;
  8. private static readonly Action<object> InfoAction;
  9. private static readonly Action<object> WarnAction;
  10. private static readonly Action<object> ErrorAction;
  11. static Logger()
  12. {
  13. if (Script.Eval<bool>("console.debug")) DebugAction = Script.Eval<Action<object>>("console.debug");
  14. if (Script.Eval<bool>("console.info")) InfoAction = Script.Eval<Action<object>>("console.info");
  15. if (Script.Eval<bool>("console.warn")) WarnAction = Script.Eval<Action<object>>("console.warn");
  16. if (Script.Eval<bool>("console.error")) ErrorAction = Script.Eval<Action<object>>("console.error");
  17. #if DEBUG
  18. DebugAction?.Invoke("Debug log Test");
  19. InfoAction?.Invoke("Info log Test");
  20. WarnAction?.Invoke("Warn log Test");
  21. ErrorAction?.Invoke("Err log Test");
  22. #endif
  23. }
  24. public static bool EnableDebug;
  25. public static void Debug(object message)
  26. {
  27. if (EnableDebug) DebugAction?.Invoke(message);
  28. }
  29. public static void Info(object message) => InfoAction?.Invoke(message);
  30. public static void Warn(object message) => WarnAction?.Invoke(message);
  31. public static void Error(object message) => ErrorAction?.Invoke(message);
  32. }
  33. }