using System; namespace Npgsql.Logging; /// /// Manages logging for Npgsql, used to set the logging provider. /// public static class NpgsqlLogManager { /// /// The logging provider used for logging in Npgsql. /// public static INpgsqlLoggingProvider Provider { get { _providerRetrieved = true; return _provider; } set { if (_providerRetrieved) throw new InvalidOperationException("The logging provider must be set before any Npgsql action is taken"); _provider = value ?? throw new ArgumentNullException(nameof(value)); } } /// /// Determines whether parameter contents will be logged alongside SQL statements - this may reveal sensitive information. /// Defaults to false. /// public static bool IsParameterLoggingEnabled { get; set; } static INpgsqlLoggingProvider _provider = new NoOpLoggingProvider(); static bool _providerRetrieved; internal static NpgsqlLogger CreateLogger(string name) => Provider.CreateLogger("Npgsql." + name); }