11using Microsoft . Extensions . Logging ;
2+ using Microsoft . Extensions . Logging . Abstractions ;
23
34namespace Buildalyzer . Environment ;
45
56internal class ProcessRunner : IDisposable
67{
7- private readonly ILogger < ProcessRunner > _logger ;
8+ private readonly ILogger Logger ;
89
910 public List < string > Output { get ; } = new List < string > ( ) ;
1011 public List < string > Error { get ; } = new List < string > ( ) ;
12+
1113 public int ExitCode => Process . ExitCode ;
1214
1315 private Process Process { get ; }
@@ -21,7 +23,7 @@ public ProcessRunner(
2123 Dictionary < string , string ? > environmentVariables ,
2224 ILoggerFactory ? loggerFactory )
2325 {
24- _logger = loggerFactory ? . CreateLogger < ProcessRunner > ( ) ;
26+ Logger = loggerFactory ? . CreateLogger < ProcessRunner > ( ) ?? NullLogger < ProcessRunner > . Instance ;
2527 Process = new Process
2628 {
2729 StartInfo =
@@ -54,15 +56,15 @@ public ProcessRunner(
5456 if ( ! string . IsNullOrEmpty ( e . Data ) )
5557 {
5658 Output . Add ( e . Data ) ;
57- _logger ? . LogDebug ( e . Data + System . Environment . NewLine ) ;
59+ Logger . LogDebug ( "{Data}{NewLine}" , e . Data , System . Environment . NewLine ) ;
5860 }
5961 } ;
6062 Process . ErrorDataReceived += ( _ , e ) =>
6163 {
6264 if ( ! string . IsNullOrEmpty ( e . Data ) )
6365 {
6466 Error . Add ( e . Data ) ;
65- _logger ? . LogError ( e . Data + System . Environment . NewLine ) ;
67+ Logger . LogDebug ( "{Data}{NewLine}" , e . Data , System . Environment . NewLine ) ;
6668 }
6769 } ;
6870 }
@@ -72,14 +74,23 @@ public ProcessRunner Start()
7274 Process . Start ( ) ;
7375 Process . BeginOutputReadLine ( ) ;
7476 Process . BeginErrorReadLine ( ) ;
75- _logger ? . LogDebug ( $ "{ System . Environment . NewLine } Started process { Process . Id } : \" { Process . StartInfo . FileName } \" { Process . StartInfo . Arguments } { System . Environment . NewLine } ") ;
77+ Logger . LogDebug (
78+ "Started process {ProcessId}: \" {FileName}\" {Arguments}{NewLine}" ,
79+ Process . Id ,
80+ Process . StartInfo . FileName ,
81+ Process . StartInfo . Arguments ,
82+ System . Environment . NewLine ) ;
7683 return this ;
7784 }
7885
79- private void ProcessExited ( object sender , EventArgs e )
86+ private void ProcessExited ( object ? sender , EventArgs e )
8087 {
8188 Exited ? . Invoke ( ) ;
82- _logger ? . LogDebug ( $ "Process { Process . Id } exited with code { Process . ExitCode } { System . Environment . NewLine } { System . Environment . NewLine } ") ;
89+ Logger . LogDebug (
90+ "Process {Id} exited with code {ExitCode}{NewLine}" ,
91+ Process . Id ,
92+ Process . ExitCode ,
93+ System . Environment . NewLine ) ;
8394 }
8495
8596 public void WaitForExit ( ) => Process . WaitForExit ( ) ;
0 commit comments