Logger.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using XUnity.AutoTranslator.Plugin.Core.Configuration;
  6. namespace XUnity.AutoTranslator.Plugin.Core
  7. {
  8. public abstract class Logger
  9. {
  10. public static Logger Current;
  11. public void Error( Exception e, string message )
  12. {
  13. Log( LogLevel.Error, message + Environment.NewLine + e );
  14. }
  15. public void Error( string message )
  16. {
  17. Log( LogLevel.Error, message );
  18. }
  19. public void Warn( Exception e, string message )
  20. {
  21. Log( LogLevel.Warn, message + Environment.NewLine + e );
  22. }
  23. public void Warn( string message )
  24. {
  25. Log( LogLevel.Warn, message );
  26. }
  27. public void Info( Exception e, string message )
  28. {
  29. Log( LogLevel.Info, message + Environment.NewLine + e );
  30. }
  31. public void Info( string message )
  32. {
  33. Log( LogLevel.Info, message );
  34. }
  35. public void Debug( Exception e, string message )
  36. {
  37. if( Settings.EnableDebugLogs )
  38. {
  39. Log( LogLevel.Debug, message + Environment.NewLine + e );
  40. }
  41. }
  42. public void Debug( string message )
  43. {
  44. if( Settings.EnableDebugLogs )
  45. {
  46. Log( LogLevel.Debug, message );
  47. }
  48. }
  49. protected abstract void Log( LogLevel level, string message );
  50. protected string GetPrefix( LogLevel level )
  51. {
  52. switch( level )
  53. {
  54. case LogLevel.Debug:
  55. return "[XUnity.AutoTranslator][DEBUG]: ";
  56. case LogLevel.Info:
  57. return "[XUnity.AutoTranslator][INFO]: ";
  58. case LogLevel.Warn:
  59. return "[XUnity.AutoTranslator][WARN]: ";
  60. case LogLevel.Error:
  61. return "[XUnity.AutoTranslator][ERROR]: ";
  62. default:
  63. return "[XUnity.AutoTranslator][UNKNOW]: ";
  64. }
  65. }
  66. }
  67. }