diff options
Diffstat (limited to 'MediaBrowser.Logging.NLog/NlogManager.cs')
| -rw-r--r-- | MediaBrowser.Logging.NLog/NlogManager.cs | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/MediaBrowser.Logging.NLog/NlogManager.cs b/MediaBrowser.Logging.NLog/NlogManager.cs new file mode 100644 index 000000000..4d6aeadd8 --- /dev/null +++ b/MediaBrowser.Logging.NLog/NlogManager.cs @@ -0,0 +1,50 @@ +using NLog; +using NLog.Config; +using NLog.Targets; + +namespace MediaBrowser.Logging.Nlog +{ + /// <summary> + /// Class NlogManager + /// </summary> + public static class NlogManager + { + /// <summary> + /// Adds the file target. + /// </summary> + /// <param name="path">The path.</param> + /// <param name="enableDebugLogging">if set to <c>true</c> [enable debug logging].</param> + public static void AddFileTarget(string path, bool enableDebugLogging) + { + var logFile = new FileTarget(); + + logFile.FileName = path; + logFile.Layout = "${longdate}, ${level}, ${logger}, ${message}"; + + AddLogTarget(logFile, "ApplicationLogFile", enableDebugLogging); + } + + /// <summary> + /// Adds the log target. + /// </summary> + /// <param name="target">The target.</param> + /// <param name="name">The name.</param> + /// <param name="enableDebugLogging">if set to <c>true</c> [enable debug logging].</param> + private static void AddLogTarget(Target target, string name, bool enableDebugLogging) + { + var config = LogManager.Configuration; + + config.RemoveTarget(name); + + target.Name = name; + config.AddTarget(name, target); + + var level = enableDebugLogging ? LogLevel.Debug : LogLevel.Info; + + var rule = new LoggingRule("*", level, target); + config.LoggingRules.Add(rule); + + LogManager.Configuration = config; + } + } +} |
