@@ -87,10 +87,12 @@ public static void Initialize()
8787 {
8888 if ( ! s_LoggingInitialized )
8989 {
90+ LoggingSettings settings = new LoggingSettings ( ) ;
91+
9092 bool loggingEnabled = false ;
9193 // DOCUMENT: By default the TraceSource is configured to source only Warning, Error and Fatal.
9294 // the configuration can override this.
93- IntegrationTraceSource = new TraceSource ( TraceSourceName , SourceLevels . Warning ) ;
95+ IntegrationTraceSource = new TraceSource ( TraceSourceName , settings . SourceLevel ) ;
9496
9597 bool logDisplayTraceListenerIsConfigured = false ;
9698 TraceListener logDisplayTraceListenerToRemove = null ; // The one we want to remove if configured as "Off"
@@ -109,6 +111,10 @@ public static void Initialize()
109111 }
110112 logDisplayTraceListenerIsConfigured = true ;
111113 }
114+ else if ( tl . Name == "Default" && settings . DebuggerLevel . HasValue )
115+ {
116+ tl . Filter = new DiagnosticsFilter ( settings . DebuggerLevel . Value ) ;
117+ }
112118 }
113119
114120 try
@@ -134,7 +140,17 @@ public static void Initialize()
134140 else
135141 {
136142 // No explicit configuration for this default listener, so we add it
137- IntegrationTraceSource . Listeners . Add ( new LogDisplayTraceListener ( "LogDisplay" ) ) ;
143+ IntegrationTraceSource . Listeners . Add ( new LogDisplayTraceListener ( "LogDisplay" , settings . LogDisplayLevel ) ) ;
144+ }
145+
146+ if ( ! string . IsNullOrWhiteSpace ( settings . FileName ) )
147+ {
148+ Trace . AutoFlush = true ;
149+
150+ TextWriterTraceListener textWriterTraceListener = new TextWriterTraceListener ( settings . FileName , "FileWriter" ) ;
151+ if ( settings . FileLevel . HasValue )
152+ textWriterTraceListener . Filter = new DiagnosticsFilter ( settings . FileLevel . Value ) ;
153+ IntegrationTraceSource . Listeners . Add ( textWriterTraceListener ) ;
138154 }
139155
140156 AppDomain currentDomain = AppDomain . CurrentDomain ;
0 commit comments