@@ -30,6 +30,11 @@ namespace Serilog.Sinks.MSBuild
3030 /// <remarks>All are optional.</remarks>
3131 public static class MSBuildProperties
3232 {
33+ /// <summary>
34+ /// The message's subcategory.
35+ /// </summary>
36+ public static readonly string Subcategory = nameof ( Subcategory ) ;
37+
3338 /// <summary>
3439 /// The message's error code.
3540 /// </summary>
@@ -88,7 +93,7 @@ public MSBuildSink(ITask task, IFormatProvider formatProvider = null)
8893 /// <inheritdoc cref="ILogEventSink.Emit"/>
8994 public void Emit ( LogEvent logEvent )
9095 {
91- string GetPropertyOrNull ( string key ) =>
96+ string GetStringOrNull ( string key ) =>
9297 logEvent . Properties . TryGetValue ( key , out var value ) ? value . ToString ( ) : null ;
9398
9499 int GetIntOrZero ( string key ) =>
@@ -97,10 +102,10 @@ scalar.Value is int numValue
97102 ? numValue
98103 : 0 ;
99104
100- string subcategory = logEvent . MessageTemplate . Text ;
101- string code = GetPropertyOrNull ( MessageCode ) ;
102- string helpKeyword = GetPropertyOrNull ( HelpKeyword ) ;
103- string file = GetPropertyOrNull ( File ) ;
105+ string subcategory = GetStringOrNull ( Subcategory ) ;
106+ string code = GetStringOrNull ( MessageCode ) ;
107+ string helpKeyword = GetStringOrNull ( HelpKeyword ) ;
108+ string file = GetStringOrNull ( File ) ;
104109 int lineNumber = GetIntOrZero ( LineNumber ) ;
105110 int columnNumber = GetIntOrZero ( ColumnNumber ) ;
106111 int lineEndNumber = GetIntOrZero ( EndLineNumber ) ;
@@ -130,8 +135,7 @@ scalar.Value is int numValue
130135 case LogEventLevel . Fatal :
131136 case LogEventLevel . Error :
132137 if ( logEvent . Level == LogEventLevel . Fatal )
133- _loggingHelper . LogError ( "Fatal error" , code , helpKeyword , file , lineNumber , columnNumber ,
134- lineEndNumber , columnEndNumber , "A fatal error did occur" ) ;
138+ subcategory = subcategory ?? "Fatal error" ;
135139 _loggingHelper . LogError ( subcategory , code , helpKeyword , file , lineNumber , columnNumber ,
136140 lineEndNumber , columnEndNumber , message ) ;
137141 if ( logEvent . Exception != null )
0 commit comments