NLoggerAdapter.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using System.Diagnostics;
  2. using System.IO;
  3. using NLog;
  4. namespace Log
  5. {
  6. public class NLoggerAdapter: ILogger
  7. {
  8. private const string SEP = " ";
  9. private readonly NLog.Logger logger = LogManager.GetCurrentClassLogger();
  10. public NLoggerAdapter()
  11. {
  12. this.FileName = true;
  13. this.FileLineNumber = true;
  14. }
  15. public bool FileName
  16. {
  17. get;
  18. set;
  19. }
  20. public bool FileLineNumber
  21. {
  22. get;
  23. set;
  24. }
  25. public string GetExtraInfo()
  26. {
  27. if (!this.FileLineNumber && !this.FileName)
  28. {
  29. return SEP;
  30. }
  31. string extraInfo = "";
  32. var stackTrace = new StackTrace(true);
  33. var frame = stackTrace.GetFrame(3);
  34. if (FileName)
  35. {
  36. var fileName = Path.GetFileName(frame.GetFileName());
  37. extraInfo += fileName + " ";
  38. }
  39. if (FileLineNumber)
  40. {
  41. var fileLineNumber = frame.GetFileLineNumber();
  42. extraInfo += fileLineNumber + " ";
  43. }
  44. extraInfo += SEP;
  45. return extraInfo;
  46. }
  47. public void Trace(string message)
  48. {
  49. logger.Trace(GetExtraInfo() + message);
  50. }
  51. public void Debug(string message)
  52. {
  53. logger.Debug(GetExtraInfo() + message);
  54. }
  55. }
  56. }