Created
November 15, 2016 22:12
-
-
Save jenyayel/60dbb734f2e5eec8d736ba18724ae50d to your computer and use it in GitHub Desktop.
INpgsql trace logger
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Usage:
NpgsqlLogManager.Provider = new TraceLoggingProvider();