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);
}