sonarr-repo-only/NzbDrone.Core/Instrumentation/LogConfiguration.cs

44 lines
1.5 KiB
C#
Raw Normal View History

2011-10-24 05:54:09 +00:00
using System.IO;
2011-04-10 02:44:01 +00:00
using Ninject;
using NLog;
using NLog.Config;
using NzbDrone.Common;
using NzbDrone.Core.Providers;
namespace NzbDrone.Core.Instrumentation
{
public class LogConfiguration
{
2011-11-13 07:27:16 +00:00
private readonly EnviromentProvider _enviromentProvider;
2011-11-08 20:12:54 +00:00
private readonly DatabaseTarget _databaseTarget;
2011-10-24 05:54:09 +00:00
2011-11-13 07:27:16 +00:00
public LogConfiguration(EnviromentProvider enviromentProvider, DatabaseTarget databaseTarget)
{
2011-11-13 07:27:16 +00:00
_enviromentProvider = enviromentProvider;
2011-11-08 20:12:54 +00:00
_databaseTarget = databaseTarget;
}
public void Setup()
{
2011-10-24 05:54:09 +00:00
if (Common.EnviromentProvider.IsProduction)
{
2011-10-24 05:54:09 +00:00
LogManager.ThrowExceptions = false;
}
2011-11-13 07:27:16 +00:00
LogManager.Configuration = new XmlLoggingConfiguration(_enviromentProvider.GetNlogConfigPath(), false);
2011-10-24 05:54:09 +00:00
Common.LogConfiguration.RegisterConsoleLogger(LogLevel.Info, "NzbDrone.Web.MvcApplication");
Common.LogConfiguration.RegisterConsoleLogger(LogLevel.Info, "NzbDrone.Core.CentralDispatch");
2011-11-08 20:12:54 +00:00
LogManager.ConfigurationReloaded += ((s, e) => RegisterDatabaseLogger(_databaseTarget));
2011-11-13 07:27:16 +00:00
Common.LogConfiguration.Reload();
}
2011-10-24 05:54:09 +00:00
public static void RegisterDatabaseLogger(DatabaseTarget databaseTarget)
{
2011-10-24 05:54:09 +00:00
LogManager.Configuration.AddTarget("DbLogger", databaseTarget);
LogManager.Configuration.LoggingRules.Add(new LoggingRule("*", LogLevel.Debug, databaseTarget));
Common.LogConfiguration.Reload();
}
}
2011-04-10 02:44:01 +00:00
}