@@ -13,6 +13,18 @@ namespace Serilog.Sinks.SqlServer;
1313/// </summary>
1414public static class JsonWriter
1515{
16+ // Pre-encoded JSON property names for exception details
17+ private static readonly JsonEncodedText MessageProperty = JsonEncodedText . Encode ( "Message" ) ;
18+ private static readonly JsonEncodedText BaseMessageProperty = JsonEncodedText . Encode ( "BaseMessage" ) ;
19+ private static readonly JsonEncodedText TypeProperty = JsonEncodedText . Encode ( "Type" ) ;
20+ private static readonly JsonEncodedText TextProperty = JsonEncodedText . Encode ( "Text" ) ;
21+ private static readonly JsonEncodedText ErrorCodeProperty = JsonEncodedText . Encode ( "ErrorCode" ) ;
22+ private static readonly JsonEncodedText HResultProperty = JsonEncodedText . Encode ( "HResult" ) ;
23+ private static readonly JsonEncodedText SourceProperty = JsonEncodedText . Encode ( "Source" ) ;
24+ private static readonly JsonEncodedText MethodNameProperty = JsonEncodedText . Encode ( "MethodName" ) ;
25+ private static readonly JsonEncodedText ModuleNameProperty = JsonEncodedText . Encode ( "ModuleName" ) ;
26+ private static readonly JsonEncodedText ModuleVersionProperty = JsonEncodedText . Encode ( "ModuleVersion" ) ;
27+
1628 /// <summary>
1729 /// Writes an exception to a JSON string representation.
1830 /// </summary>
@@ -47,33 +59,33 @@ public static class JsonWriter
4759 {
4860 writer . WriteStartObject ( ) ;
4961
50- writer . WriteString ( "Message" , exception . Message ) ;
62+ writer . WriteString ( MessageProperty , exception . Message ) ;
5163
5264 // include base exception message
5365 if ( exception . InnerException != null )
54- writer . WriteString ( "BaseMessage" , exception . GetBaseException ( ) . Message ) ;
66+ writer . WriteString ( BaseMessageProperty , exception . GetBaseException ( ) . Message ) ;
5567
56- writer . WriteString ( "Type" , exception . GetType ( ) . FullName ) ;
57- writer . WriteString ( "Text" , exception . ToString ( ) ) ;
68+ writer . WriteString ( TypeProperty , exception . GetType ( ) . FullName ) ;
69+ writer . WriteString ( TextProperty , exception . ToString ( ) ) ;
5870
5971 if ( exception is ExternalException external )
60- writer . WriteNumber ( "ErrorCode" , external . ErrorCode ) ;
72+ writer . WriteNumber ( ErrorCodeProperty , external . ErrorCode ) ;
6173
62- writer . WriteNumber ( "HResult" , exception . HResult ) ;
74+ writer . WriteNumber ( HResultProperty , exception . HResult ) ;
6375
6476 if ( ! string . IsNullOrEmpty ( exception . Source ) )
65- writer . WriteString ( "Source" , exception . Source ) ;
77+ writer . WriteString ( SourceProperty , exception . Source ) ;
6678
6779 var method = exception . TargetSite ;
6880 if ( method != null )
6981 {
70- writer . WriteString ( "MethodName" , method . Name ) ;
82+ writer . WriteString ( MethodNameProperty , method . Name ) ;
7183
7284 var assembly = method . Module ? . Assembly ? . GetName ( ) ;
7385 if ( assembly != null )
7486 {
75- writer . WriteString ( "ModuleName" , assembly . Name ) ;
76- writer . WriteString ( "ModuleVersion" , assembly . Version ? . ToString ( ) ) ;
87+ writer . WriteString ( ModuleNameProperty , assembly . Name ) ;
88+ writer . WriteString ( ModuleVersionProperty , assembly . Version ? . ToString ( ) ) ;
7789 }
7890 }
7991
0 commit comments