/// <summary> /// Adds an instance of <see cref="SentryCommandInterceptor"/> to <see cref="DbInterception"/> /// This is a static setup call, so make sure you only call it once for each <see cref="IQueryLogger"/> instance you want to register globally /// </summary> /// <param name="logger"></param> public static SentryCommandInterceptor UseBreadcrumbs(IQueryLogger logger = null) { logger = logger ?? new SentryQueryLogger(); var interceptor = new SentryCommandInterceptor(logger); DbInterception.Add(interceptor); return(interceptor); }
internal static SentryCommandInterceptor?UseBreadcrumbs( IQueryLogger?queryLogger = null, bool initOnce = true, IDiagnosticLogger?diagnosticLogger = null) { if (initOnce && Interlocked.Exchange(ref Init, 1) != 0) { diagnosticLogger?.LogWarning("{0}.{1} was already executed.", nameof(SentryDatabaseLogging), nameof(UseBreadcrumbs)); return(null); } diagnosticLogger?.LogInfo("{0}.{1} adding interceptor.", nameof(SentryDatabaseLogging), nameof(UseBreadcrumbs)); queryLogger ??= new SentryQueryLogger(); var interceptor = new SentryCommandInterceptor(queryLogger); DbInterception.Add(interceptor); return(interceptor); }