9
9
namespace Exceptionless . NLog {
10
10
public static class ExceptionlessClientExtensions {
11
11
public static EventBuilder CreateFromLogEvent ( this ExceptionlessClient client , LogEventInfo ev ) {
12
- var contextData = ev . GetContextData ( ) ;
12
+ var contextData = new ContextData ( ev . GetContextData ( ) ) ;
13
13
14
14
if ( ev . Exception != null )
15
15
contextData . SetException ( ev . Exception ) ;
16
16
17
17
var builder = client . CreateEvent ( contextData ) ;
18
18
if ( ev . Exception == null ) {
19
- builder . SetType ( Event . KnownTypes . Log ) ;
20
19
builder . SetSource ( ev . LoggerName ) ;
21
20
builder . SetProperty ( Event . KnownDataKeys . Level , ev . Level . Name ) ;
22
- } else {
23
- builder . SetType ( Event . KnownTypes . Error ) ;
24
21
}
22
+
25
23
builder . Target . Date = ev . TimeStamp ;
26
24
27
25
if ( ! String . IsNullOrWhiteSpace ( ev . FormattedMessage ) )
@@ -67,6 +65,17 @@ public static LogBuilder MarkUnhandled(this LogBuilder builder, string submissio
67
65
return builder ;
68
66
}
69
67
68
+ public static void MarkAsUnhandledError ( this IDictionary < string , object > contextData ) {
69
+ contextData [ IsUnhandledError ] = true ;
70
+ }
71
+
72
+ public static void SetSubmissionMethod ( this IDictionary < string , object > contextData , string submissionMethod ) {
73
+ contextData [ SubmissionMethod ] = submissionMethod ;
74
+ }
75
+
76
+ public const string IsUnhandledError = "@@_IsUnhandledError" ;
77
+ public const string SubmissionMethod = "@@_SubmissionMethod" ;
78
+
70
79
public static List < string > GetTags ( this LogEventInfo ev ) {
71
80
var tagList = new List < string > ( ) ;
72
81
if ( ! ev . Properties . ContainsKey ( "Tags" ) )
@@ -79,14 +88,14 @@ public static List<string> GetTags(this LogEventInfo ev) {
79
88
return tagList ;
80
89
}
81
90
82
- public static ContextData GetContextData ( this LogEventInfo ev ) {
83
- var contextData = new ContextData ( ) ;
91
+ public static IDictionary < string , object > GetContextData ( this LogEventInfo ev ) {
92
+ IDictionary < string , object > contextData = new Dictionary < string , object > ( ) ;
84
93
if ( ! ev . Properties . ContainsKey ( "ContextData" ) )
85
94
ev . Properties [ "ContextData" ] = contextData ;
86
95
87
96
if ( ev . Properties . ContainsKey ( "ContextData" )
88
- && ev . Properties [ "ContextData" ] is ContextData )
89
- contextData = ( ContextData ) ev . Properties [ "ContextData" ] ;
97
+ && ev . Properties [ "ContextData" ] is IDictionary < string , object > )
98
+ contextData = ( IDictionary < string , object > ) ev . Properties [ "ContextData" ] ;
90
99
91
100
return contextData ;
92
101
}
0 commit comments