TapLogger.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using System;
  2. using System.Text;
  3. namespace TapSDK.Core {
  4. public class TapLogger {
  5. /// <summary>
  6. /// Configures the logger.
  7. /// </summary>
  8. /// <value>The log delegate.</value>
  9. public static Action<TapLogLevel, string> LogDelegate {
  10. internal get; set;
  11. }
  12. public static void Debug(string log) {
  13. LogDelegate?.Invoke(TapLogLevel.Debug, log);
  14. }
  15. public static void Debug(string format, params object[] args) {
  16. LogDelegate?.Invoke(TapLogLevel.Debug, string.Format(format, args));
  17. }
  18. public static void Warn(string log) {
  19. LogDelegate?.Invoke(TapLogLevel.Warn, log);
  20. }
  21. public static void Warn(string format, params object[] args) {
  22. LogDelegate?.Invoke(TapLogLevel.Warn, string.Format(format, args));
  23. }
  24. public static void Error(string log) {
  25. LogDelegate?.Invoke(TapLogLevel.Error, log);
  26. }
  27. public static void Error(string format, params object[] args) {
  28. LogDelegate?.Invoke(TapLogLevel.Error, string.Format(format, args));
  29. }
  30. public static void Error(Exception e) {
  31. StringBuilder sb = new StringBuilder();
  32. sb.Append(e.GetType());
  33. sb.Append("\n");
  34. sb.Append(e.Message);
  35. sb.Append("\n");
  36. sb.Append(e.StackTrace);
  37. Error(sb.ToString());
  38. }
  39. }
  40. }