@ -1,4 +1,6 @@
using System.Linq ;
using System ;
using System.Collections.Generic ;
using System.Linq ;
using NLog ;
using NLog.Fluent ;
@ -8,47 +10,46 @@ namespace NzbDrone.Common.Instrumentation.Extensions
{
public static readonly Logger SentryLogger = LogManager . GetLogger ( "Sentry" ) ;
public static Log Builder SentryFingerprint ( this Log Builder logBuilder , params string [ ] fingerprint )
public static Log Event Builder SentryFingerprint ( this Log Event Builder logBuilder , params string [ ] fingerprint )
{
return logBuilder . Property ( "Sentry" , fingerprint ) ;
}
public static Log Builder WriteSentryDebug ( this Log Builder logBuilder , params string [ ] fingerprint )
public static Log Event Builder WriteSentryDebug ( this Log Event Builder logBuilder , params string [ ] fingerprint )
{
return LogSentryMessage ( logBuilder , LogLevel . Debug , fingerprint ) ;
}
public static Log Builder WriteSentryInfo ( this Log Builder logBuilder , params string [ ] fingerprint )
public static Log Event Builder WriteSentryInfo ( this Log Event Builder logBuilder , params string [ ] fingerprint )
{
return LogSentryMessage ( logBuilder , LogLevel . Info , fingerprint ) ;
}
public static Log Builder WriteSentryWarn ( this Log Builder logBuilder , params string [ ] fingerprint )
public static Log Event Builder WriteSentryWarn ( this Log Event Builder logBuilder , params string [ ] fingerprint )
{
return LogSentryMessage ( logBuilder , LogLevel . Warn , fingerprint ) ;
}
public static Log Builder WriteSentryError ( this Log Builder logBuilder , params string [ ] fingerprint )
public static Log Event Builder WriteSentryError ( this Log Event Builder logBuilder , params string [ ] fingerprint )
{
return LogSentryMessage ( logBuilder , LogLevel . Error , fingerprint ) ;
}
private static Log Builder LogSentryMessage ( Log Builder logBuilder , LogLevel level , string [ ] fingerprint )
private static Log Event Builder LogSentryMessage ( Log Event Builder logBuilder , LogLevel level , string [ ] fingerprint )
{
SentryLogger . Log( level )
. CopyLogEvent ( logBuilder . LogEvent Info )
SentryLogger . For LogEvent ( level )
. CopyLogEvent ( logBuilder . LogEvent )
. SentryFingerprint ( fingerprint )
. Write ( ) ;
. Log ( ) ;
return logBuilder . Property ("Sentry" , null ) ;
return logBuilder . Property <string > ("Sentry" , null ) ;
}
private static Log Builder CopyLogEvent ( this Log Builder logBuilder , LogEventInfo logEvent )
private static Log Event Builder CopyLogEvent ( this Log Event Builder logBuilder , LogEventInfo logEvent )
{
return logBuilder . LoggerName ( logEvent . LoggerName )
. TimeStamp ( logEvent . TimeStamp )
return logBuilder . TimeStamp ( logEvent . TimeStamp )
. Message ( logEvent . Message , logEvent . Parameters )
. Properties ( logEvent . Properties . ToDictionary( v = > v . Key , v = > v . Value ) )
. Properties ( logEvent . Properties . Select( p = > new KeyValuePair < string , object > ( p . Key . ToString ( ) , p . Value ) ) )
. Exception ( logEvent . Exception ) ;
}
}