1- using System ;
1+ using System ;
22using System . Diagnostics ;
33using System . Globalization ;
44using System . IO ;
@@ -9,10 +9,12 @@ namespace GitHub.Runner.Common
99 public sealed class StdoutTraceListener : ConsoleTraceListener
1010 {
1111 private readonly string _hostType ;
12+ private readonly bool _disablePrefixMultilineLogs = false ;
1213
1314 public StdoutTraceListener ( string hostType )
1415 {
1516 this . _hostType = hostType ;
17+ this . _disablePrefixMultilineLogs = StringUtil . ConvertToBoolean ( Environment . GetEnvironmentVariable ( Constants . Variables . Agent . DisableStdoutMultilineLogPrefixing ) ) ;
1618 }
1719
1820 // Copied and modified slightly from .Net Core source code. Modification was required to make it compile.
@@ -26,11 +28,20 @@ public override void TraceEvent(TraceEventCache eventCache, string source, Trace
2628
2729 if ( ! string . IsNullOrEmpty ( message ) )
2830 {
29- var messageLines = message . Split ( Environment . NewLine ) ;
30- foreach ( var messageLine in messageLines )
31+ if ( ! this . _disablePrefixMultilineLogs )
32+ {
33+ var messageLines = message . Split ( Environment . NewLine ) ;
34+ foreach ( var messageLine in messageLines )
35+ {
36+ WriteHeader ( source , eventType , id ) ;
37+ WriteLine ( messageLine ) ;
38+ WriteFooter ( eventCache ) ;
39+ }
40+ }
41+ else
3142 {
3243 WriteHeader ( source , eventType , id ) ;
33- WriteLine ( messageLine ) ;
44+ WriteLine ( message ) ;
3445 WriteFooter ( eventCache ) ;
3546 }
3647 }
0 commit comments