Skip to content

Instantly share code, notes, and snippets.

@jenyayel
Created November 15, 2016 22:12
Show Gist options
  • Save jenyayel/60dbb734f2e5eec8d736ba18724ae50d to your computer and use it in GitHub Desktop.
Save jenyayel/60dbb734f2e5eec8d736ba18724ae50d to your computer and use it in GitHub Desktop.
INpgsql trace logger
public class TraceLoggingProvider : INpgsqlLoggingProvider
{
public NpgsqlLogger CreateLogger(string name)
{
return new TraceLogger();
}
}
public class TraceLogger : NpgsqlLogger
{
public override bool IsEnabled(NpgsqlLogLevel level)
{
return true;
}
public override void Log(NpgsqlLogLevel level, int connectorId, string msg, Exception exception = null)
{
var format = $"{connectorId}: {msg}{(exception != null ? " | " + exception.Message : String.Empty)}";
switch (level)
{
case NpgsqlLogLevel.Trace:
case NpgsqlLogLevel.Debug:
case NpgsqlLogLevel.Info:
Trace.TraceInformation(format);
break;
case NpgsqlLogLevel.Warn:
Trace.TraceWarning(format);
break;
case NpgsqlLogLevel.Error:
case NpgsqlLogLevel.Fatal:
Trace.TraceError(format);
break;
}
}
}
@jenyayel
Copy link
Author

Usage: NpgsqlLogManager.Provider = new TraceLoggingProvider();

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment