15
15
16
16
namespace Serilog . Extensions . Logging
17
17
{
18
- class SerilogLoggerProvider : ILoggerProvider , ILogEventEnricher
18
+ /// <summary>
19
+ /// An <see cref="ILoggerProvider"/> that pipes events through Serilog.
20
+ /// </summary>
21
+ public class SerilogLoggerProvider : ILoggerProvider , ILogEventEnricher
19
22
{
20
- public const string OriginalFormatPropertyName = "{OriginalFormat}" ;
23
+ internal const string OriginalFormatPropertyName = "{OriginalFormat}" ;
21
24
22
25
// May be null; if it is, Log.Logger will be lazily used
23
26
readonly ILogger _logger ;
24
27
readonly Action _dispose ;
25
28
29
+ /// <summary>
30
+ /// Construct a <see cref="SerilogLoggerProvider"/>.
31
+ /// </summary>
32
+ /// <param name="logger">A Serilog logger to pipe events through; if null, the static <see cref="Log"/> class will be used.</param>
33
+ /// <param name="dispose">If true, the provided logger or static log class will be disposed/closed when the provider is disposed.</param>
26
34
public SerilogLoggerProvider ( ILogger logger = null , bool dispose = false )
27
35
{
28
36
if ( logger != null )
@@ -37,16 +45,19 @@ public SerilogLoggerProvider(ILogger logger = null, bool dispose = false)
37
45
}
38
46
}
39
47
48
+ /// <inheritdoc />
40
49
public FrameworkLogger CreateLogger ( string name )
41
50
{
42
51
return new SerilogLogger ( this , _logger , name ) ;
43
52
}
44
53
54
+ /// <inheritdoc />
45
55
public IDisposable BeginScope < T > ( T state )
46
56
{
47
57
return new SerilogLoggerScope ( this , state ) ;
48
58
}
49
59
60
+ /// <inheritdoc />
50
61
public void Enrich ( LogEvent logEvent , ILogEventPropertyFactory propertyFactory )
51
62
{
52
63
for ( var scope = CurrentScope ; scope != null ; scope = scope . Parent )
@@ -58,7 +69,7 @@ public void Enrich(LogEvent logEvent, ILogEventPropertyFactory propertyFactory)
58
69
#if ASYNCLOCAL
59
70
readonly AsyncLocal < SerilogLoggerScope > _value = new AsyncLocal < SerilogLoggerScope > ( ) ;
60
71
61
- public SerilogLoggerScope CurrentScope
72
+ internal SerilogLoggerScope CurrentScope
62
73
{
63
74
get
64
75
{
@@ -72,7 +83,7 @@ public SerilogLoggerScope CurrentScope
72
83
#else
73
84
readonly string _currentScopeKey = nameof ( SerilogLoggerScope ) + "#" + Guid . NewGuid ( ) . ToString ( "n" ) ;
74
85
75
- public SerilogLoggerScope CurrentScope
86
+ internal SerilogLoggerScope CurrentScope
76
87
{
77
88
get
78
89
{
@@ -86,6 +97,7 @@ public SerilogLoggerScope CurrentScope
86
97
}
87
98
#endif
88
99
100
+ /// <inheritdoc />
89
101
public void Dispose ( )
90
102
{
91
103
_dispose ? . Invoke ( ) ;
0 commit comments