@@ -132,6 +132,7 @@ public interface ILogTracer
132132 void ForceFlush ( ) ;
133133 void Info ( string message ) ;
134134 void Warning ( string message ) ;
135+ void Verbose ( string message ) ;
135136
136137 ILogTracer WithTag ( string k , string v ) ;
137138 ILogTracer WithTags ( ( string , string ) [ ] ? tags ) ;
@@ -155,11 +156,11 @@ public class LogTracer : ILogTracerInternal
155156 private Guid _correlationId ;
156157 private List < ILog > _loggers ;
157158 private Dictionary < string , string > _tags ;
159+ private SeverityLevel _logSeverityLevel ;
158160
159161 public Guid CorrelationId => _correlationId ;
160162 public IReadOnlyDictionary < string , string > Tags => _tags ;
161163
162-
163164 private static List < KeyValuePair < string , string > > ConvertTags ( ( string , string ) [ ] ? tags )
164165 {
165166 List < KeyValuePair < string , string > > converted = new List < KeyValuePair < string , string > > ( ) ;
@@ -177,14 +178,17 @@ private static List<KeyValuePair<string, string>> ConvertTags((string, string)[]
177178 }
178179 }
179180
180- public LogTracer ( Guid correlationId , ( string , string ) [ ] ? tags , List < ILog > loggers ) : this ( correlationId , new Dictionary < string , string > ( ConvertTags ( tags ) ) , loggers ) { }
181+ public LogTracer ( Guid correlationId , ( string , string ) [ ] ? tags , List < ILog > loggers , SeverityLevel logSeverityLevel ) :
182+ this ( correlationId , new Dictionary < string , string > ( ConvertTags ( tags ) ) , loggers , logSeverityLevel )
183+ { }
181184
182185
183- public LogTracer ( Guid correlationId , IReadOnlyDictionary < string , string > tags , List < ILog > loggers )
186+ public LogTracer ( Guid correlationId , IReadOnlyDictionary < string , string > tags , List < ILog > loggers , SeverityLevel logSeverityLevel )
184187 {
185188 _correlationId = correlationId ;
186189 _tags = new ( tags ) ;
187190 _loggers = loggers ;
191+ _logSeverityLevel = logSeverityLevel ;
188192 }
189193
190194 //Single threaded only
@@ -220,42 +224,66 @@ public ILogTracer WithTags((string, string)[]? tags)
220224 newTags [ k ] = v ;
221225 }
222226 }
223- return new LogTracer ( CorrelationId , newTags , _loggers ) ;
227+ return new LogTracer ( CorrelationId , newTags , _loggers , _logSeverityLevel ) ;
228+ }
229+
230+ public void Verbose ( string message )
231+ {
232+ if ( _logSeverityLevel >= SeverityLevel . Verbose )
233+ {
234+ var caller = GetCaller ( ) ;
235+ foreach ( var logger in _loggers )
236+ {
237+ logger . Log ( CorrelationId , message , SeverityLevel . Verbose , Tags , caller ) ;
238+ }
239+ }
224240 }
225241
226242 public void Info ( string message )
227243 {
228- var caller = GetCaller ( ) ;
229- foreach ( var logger in _loggers )
244+ if ( _logSeverityLevel >= SeverityLevel . Information )
230245 {
231- logger . Log ( CorrelationId , message , SeverityLevel . Information , Tags , caller ) ;
246+ var caller = GetCaller ( ) ;
247+ foreach ( var logger in _loggers )
248+ {
249+ logger . Log ( CorrelationId , message , SeverityLevel . Information , Tags , caller ) ;
250+ }
232251 }
233252 }
234253
235254 public void Warning ( string message )
236255 {
237- var caller = GetCaller ( ) ;
238- foreach ( var logger in _loggers )
256+ if ( _logSeverityLevel >= SeverityLevel . Warning )
239257 {
240- logger . Log ( CorrelationId , message , SeverityLevel . Warning , Tags , caller ) ;
258+ var caller = GetCaller ( ) ;
259+ foreach ( var logger in _loggers )
260+ {
261+ logger . Log ( CorrelationId , message , SeverityLevel . Warning , Tags , caller ) ;
262+ }
241263 }
242264 }
243265
244266 public void Error ( string message )
245267 {
246- var caller = GetCaller ( ) ;
247- foreach ( var logger in _loggers )
268+ if ( _logSeverityLevel >= SeverityLevel . Error )
248269 {
249- logger . Log ( CorrelationId , message , SeverityLevel . Error , Tags , caller ) ;
270+ var caller = GetCaller ( ) ;
271+ foreach ( var logger in _loggers )
272+ {
273+ logger . Log ( CorrelationId , message , SeverityLevel . Error , Tags , caller ) ;
274+ }
250275 }
251276 }
252277
253278 public void Critical ( string message )
254279 {
255- var caller = GetCaller ( ) ;
256- foreach ( var logger in _loggers )
280+ if ( _logSeverityLevel >= SeverityLevel . Critical )
257281 {
258- logger . Log ( CorrelationId , message , SeverityLevel . Critical , Tags , caller ) ;
282+ var caller = GetCaller ( ) ;
283+ foreach ( var logger in _loggers )
284+ {
285+ logger . Log ( CorrelationId , message , SeverityLevel . Critical , Tags , caller ) ;
286+ }
259287 }
260288 }
261289
0 commit comments