diff --git a/Geekbot.net.sln.DotSettings b/Geekbot.net.sln.DotSettings index 7fa04b3..6d439b8 100644 --- a/Geekbot.net.sln.DotSettings +++ b/Geekbot.net.sln.DotSettings @@ -5,6 +5,7 @@ True True True + True True True True diff --git a/Geekbot.net/Database/DatabaseInitializer.cs b/Geekbot.net/Database/DatabaseInitializer.cs index 7eff2c6..6adff44 100644 --- a/Geekbot.net/Database/DatabaseInitializer.cs +++ b/Geekbot.net/Database/DatabaseInitializer.cs @@ -16,7 +16,7 @@ namespace Geekbot.net.Database { _runParameters = runParameters; _logger = logger; - NpgsqlLogManager.Provider = new NpgsqlLoggingProviderAdapter(_logger); + NpgsqlLogManager.Provider = new NpgsqlLoggingProviderAdapter(logger, runParameters); } public DatabaseContext Initialize() @@ -45,8 +45,12 @@ namespace Geekbot.net.Database _logger.Error(LogSource.Geekbot, "Could not Connect to datbase", e); Environment.Exit(GeekbotExitCode.DatabaseConnectionFailed.GetHashCode()); } - - _logger.Information(LogSource.Database, $"Connected with {database.Database.ProviderName}"); + + if (_runParameters.DbLogging) + { + _logger.Information(LogSource.Database, $"Connected with {database.Database.ProviderName}"); + } + return database; } } diff --git a/Geekbot.net/Database/LoggingAdapter/NpgsqlLoggingAdapter.cs b/Geekbot.net/Database/LoggingAdapter/NpgsqlLoggingAdapter.cs index 80d60b3..e8850cd 100644 --- a/Geekbot.net/Database/LoggingAdapter/NpgsqlLoggingAdapter.cs +++ b/Geekbot.net/Database/LoggingAdapter/NpgsqlLoggingAdapter.cs @@ -1,4 +1,5 @@ using System; +using Geekbot.net.Lib; using Geekbot.net.Lib.Logger; using Npgsql.Logging; using LogLevel = NLog.LogLevel; @@ -9,17 +10,19 @@ namespace Geekbot.net.Database.LoggingAdapter { private readonly string _name; private readonly IGeekbotLogger _geekbotLogger; + private readonly RunParameters _runParameters; - public NpgsqlLoggingAdapter(string name, IGeekbotLogger geekbotLogger) + public NpgsqlLoggingAdapter(string name, IGeekbotLogger geekbotLogger, RunParameters runParameters) { _name = name.Substring(7); _geekbotLogger = geekbotLogger; + _runParameters = runParameters; geekbotLogger.Trace(LogSource.Database, $"Loaded Npgsql logging adapter: {name}"); } public override bool IsEnabled(NpgsqlLogLevel level) { - return !_geekbotLogger.LogAsJson() && _geekbotLogger.GetNLogger().IsEnabled(ToGeekbotLogLevel(level)); + return (_runParameters.DbLogging && _geekbotLogger.GetNLogger().IsEnabled(ToGeekbotLogLevel(level))); } public override void Log(NpgsqlLogLevel level, int connectorId, string msg, Exception exception = null) diff --git a/Geekbot.net/Database/LoggingAdapter/NpgsqlLoggingProviderAdapter.cs b/Geekbot.net/Database/LoggingAdapter/NpgsqlLoggingProviderAdapter.cs index 0888111..efe82a3 100644 --- a/Geekbot.net/Database/LoggingAdapter/NpgsqlLoggingProviderAdapter.cs +++ b/Geekbot.net/Database/LoggingAdapter/NpgsqlLoggingProviderAdapter.cs @@ -1,4 +1,5 @@ -using Geekbot.net.Lib.Logger; +using Geekbot.net.Lib; +using Geekbot.net.Lib.Logger; using Npgsql.Logging; namespace Geekbot.net.Database.LoggingAdapter @@ -6,15 +7,17 @@ namespace Geekbot.net.Database.LoggingAdapter public class NpgsqlLoggingProviderAdapter : INpgsqlLoggingProvider { private readonly GeekbotLogger _geekbotLogger; + private readonly RunParameters _runParameters; - public NpgsqlLoggingProviderAdapter(GeekbotLogger geekbotLogger) + public NpgsqlLoggingProviderAdapter(GeekbotLogger geekbotLogger, RunParameters runParameters) { _geekbotLogger = geekbotLogger; + _runParameters = runParameters; } public NpgsqlLogger CreateLogger(string name) { - return new NpgsqlLoggingAdapter(name, _geekbotLogger); + return new NpgsqlLoggingAdapter(name, _geekbotLogger, _runParameters); } } } \ No newline at end of file diff --git a/Geekbot.net/Lib/RunParameters.cs b/Geekbot.net/Lib/RunParameters.cs index 7f2dd3d..444a60f 100644 --- a/Geekbot.net/Lib/RunParameters.cs +++ b/Geekbot.net/Lib/RunParameters.cs @@ -45,6 +45,10 @@ namespace Geekbot.net.Lib [Option("db-password", Default = "", HelpText = "Set a posgresql password")] public string DbPassword { get; set; } + + // Logging + [Option("db-logging", Default = false, HelpText = "Enable database logging")] + public bool DbLogging { get; set; } /************************************ * Redis *