@@ -12,27 +12,30 @@ public class StartTraceLog : PSCmdlet
1212 public string Path ;
1313
1414 [ Parameter ( Mandatory = false ) ]
15- public PnP . Framework . Diagnostics . LogLevel Level = PnP . Framework . Diagnostics . LogLevel . Information ;
15+ public SwitchParameter WriteToConsole ;
16+
17+ [ Parameter ( Mandatory = false ) ]
18+ public Framework . Diagnostics . LogLevel Level = Framework . Diagnostics . LogLevel . Information ;
1619
1720 [ Parameter ( Mandatory = false ) ]
1821 public bool AutoFlush = true ;
1922
2023 private const string FileListenername = "PNPPOWERSHELLFILETRACELISTENER" ;
2124 private const string ConsoleListenername = "PNPPOWERSHELLCONSOLETRACELISTENER" ;
25+
2226 protected override void ProcessRecord ( )
2327 {
24-
25- // Setup Console Listener if Console switch has been specified or No file LogFile parameter has been set
26- if ( string . IsNullOrEmpty ( Path ) )
28+ if ( WriteToConsole . ToBool ( ) )
2729 {
2830 RemoveListener ( ConsoleListenername ) ;
29- ConsoleTraceListener consoleListener = new ConsoleTraceListener ( false ) ;
30- consoleListener . Name = ConsoleListenername ;
31+ ConsoleTraceListener consoleListener = new ( false )
32+ {
33+ Name = ConsoleListenername
34+ } ;
3135 Trace . Listeners . Add ( consoleListener ) ;
32- PnP . Framework . Diagnostics . Log . LogLevel = Level ;
36+ Framework . Diagnostics . Log . LogLevel = Level ;
3337 }
3438
35- // Setup File Listener
3639 if ( ! string . IsNullOrEmpty ( Path ) )
3740 {
3841 RemoveListener ( FileListenername ) ;
@@ -42,19 +45,24 @@ protected override void ProcessRecord()
4245 Path = System . IO . Path . Combine ( SessionState . Path . CurrentFileSystemLocation . Path , Path ) ;
4346 }
4447 // Create DelimitedListTraceListener in case Delimiter parameter has been specified, if not create TextWritterTraceListener
45- TraceListener listener = new TextWriterTraceListener ( Path ) ;
46-
47- listener . Name = FileListenername ;
48+ TraceListener listener = new TextWriterTraceListener ( Path )
49+ {
50+ Name = FileListenername
51+ } ;
4852 Trace . Listeners . Add ( listener ) ;
49- PnP . Framework . Diagnostics . Log . LogLevel = Level ;
53+ Framework . Diagnostics . Log . LogLevel = Level ;
5054 }
5155
5256 Trace . AutoFlush = AutoFlush ;
5357 Trace . IndentSize = 4 ;
54-
5558 }
5659
57- private void RemoveListener ( string listenerName )
60+ /// <summary>
61+ /// Tries to remove the listener with the given name from the Trace.Listeners collection.
62+ /// If the listener is not found, it will be ignored.
63+ /// </summary>
64+ /// <param name="listenerName">Name of the trace listener</param>
65+ private static void RemoveListener ( string listenerName )
5866 {
5967 try
6068 {
@@ -70,7 +78,6 @@ private void RemoveListener(string listenerName)
7078 {
7179 // ignored
7280 }
73-
7481 }
7582 }
7683}
0 commit comments