@@ -12,27 +12,30 @@ public class StartTraceLog : PSCmdlet
12
12
public string Path ;
13
13
14
14
[ 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 ;
16
19
17
20
[ Parameter ( Mandatory = false ) ]
18
21
public bool AutoFlush = true ;
19
22
20
23
private const string FileListenername = "PNPPOWERSHELLFILETRACELISTENER" ;
21
24
private const string ConsoleListenername = "PNPPOWERSHELLCONSOLETRACELISTENER" ;
25
+
22
26
protected override void ProcessRecord ( )
23
27
{
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 ( ) )
27
29
{
28
30
RemoveListener ( ConsoleListenername ) ;
29
- ConsoleTraceListener consoleListener = new ConsoleTraceListener ( false ) ;
30
- consoleListener . Name = ConsoleListenername ;
31
+ ConsoleTraceListener consoleListener = new ( false )
32
+ {
33
+ Name = ConsoleListenername
34
+ } ;
31
35
Trace . Listeners . Add ( consoleListener ) ;
32
- PnP . Framework . Diagnostics . Log . LogLevel = Level ;
36
+ Framework . Diagnostics . Log . LogLevel = Level ;
33
37
}
34
38
35
- // Setup File Listener
36
39
if ( ! string . IsNullOrEmpty ( Path ) )
37
40
{
38
41
RemoveListener ( FileListenername ) ;
@@ -42,19 +45,24 @@ protected override void ProcessRecord()
42
45
Path = System . IO . Path . Combine ( SessionState . Path . CurrentFileSystemLocation . Path , Path ) ;
43
46
}
44
47
// 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
+ } ;
48
52
Trace . Listeners . Add ( listener ) ;
49
- PnP . Framework . Diagnostics . Log . LogLevel = Level ;
53
+ Framework . Diagnostics . Log . LogLevel = Level ;
50
54
}
51
55
52
56
Trace . AutoFlush = AutoFlush ;
53
57
Trace . IndentSize = 4 ;
54
-
55
58
}
56
59
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 )
58
66
{
59
67
try
60
68
{
@@ -70,7 +78,6 @@ private void RemoveListener(string listenerName)
70
78
{
71
79
// ignored
72
80
}
73
-
74
81
}
75
82
}
76
83
}
0 commit comments