NlogManager.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using NLog;
  2. using NLog.Config;
  3. using NLog.Targets;
  4. namespace MediaBrowser.Logging.Nlog
  5. {
  6. /// <summary>
  7. /// Class NlogManager
  8. /// </summary>
  9. public static class NlogManager
  10. {
  11. /// <summary>
  12. /// Adds the file target.
  13. /// </summary>
  14. /// <param name="path">The path.</param>
  15. /// <param name="enableDebugLogging">if set to <c>true</c> [enable debug logging].</param>
  16. public static void AddFileTarget(string path, bool enableDebugLogging)
  17. {
  18. var logFile = new FileTarget();
  19. logFile.FileName = path;
  20. logFile.Layout = "${longdate}, ${level}, ${logger}, ${message}";
  21. AddLogTarget(logFile, "ApplicationLogFile", enableDebugLogging);
  22. }
  23. /// <summary>
  24. /// Adds the log target.
  25. /// </summary>
  26. /// <param name="target">The target.</param>
  27. /// <param name="name">The name.</param>
  28. /// <param name="enableDebugLogging">if set to <c>true</c> [enable debug logging].</param>
  29. private static void AddLogTarget(Target target, string name, bool enableDebugLogging)
  30. {
  31. var config = LogManager.Configuration;
  32. config.RemoveTarget(name);
  33. target.Name = name;
  34. config.AddTarget(name, target);
  35. var level = enableDebugLogging ? LogLevel.Debug : LogLevel.Info;
  36. var rule = new LoggingRule("*", level, target);
  37. config.LoggingRules.Add(rule);
  38. LogManager.Configuration = config;
  39. }
  40. }
  41. }