Skip to content

Commit e02576a

Browse files
committed
add modern logger-runtime extensions
1 parent e2c698e commit e02576a

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
using System.Logging.Builders;
2+
using System.Runtime.CompilerServices;
3+
4+
namespace System.Logging.Runtimes;
5+
6+
public static class LoggerRuntimeExtensions
7+
{
8+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
9+
public static LoggerRuntime Initialize
10+
(
11+
this LoggerRuntime loggerRuntime,
12+
Func<LoggerContextBuilder, LoggerContextBuilder> loggerBuilderFactory
13+
)
14+
{
15+
ArgumentNullException.ThrowIfNull(loggerRuntime);
16+
ArgumentNullException.ThrowIfNull(loggerBuilderFactory);
17+
18+
var loggerBuilder = loggerBuilderFactory(new LoggerContextBuilder());
19+
20+
loggerRuntime.Initialize(loggerBuilder, CancellationToken.None);
21+
22+
return loggerRuntime;
23+
}
24+
25+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
26+
public static LoggerRuntime Initialize
27+
(
28+
this LoggerRuntime loggerRuntime,
29+
TimeSpan timeout,
30+
Func<LoggerContextBuilder, LoggerContextBuilder> loggerBuilderFactory
31+
)
32+
{
33+
ArgumentNullException.ThrowIfNull(loggerRuntime);
34+
ArgumentNullException.ThrowIfNull(loggerBuilderFactory);
35+
36+
var loggerBuilder = loggerBuilderFactory(new LoggerContextBuilder());
37+
38+
loggerRuntime.Initialize(loggerBuilder, timeout);
39+
40+
return loggerRuntime;
41+
}
42+
43+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
44+
public static LoggerRuntime Initialize
45+
(
46+
this LoggerRuntime loggerRuntime,
47+
CancellationToken cancellationToken,
48+
Func<LoggerContextBuilder, LoggerContextBuilder> loggerBuilderFactory
49+
)
50+
{
51+
ArgumentNullException.ThrowIfNull(loggerRuntime);
52+
ArgumentNullException.ThrowIfNull(loggerBuilderFactory);
53+
54+
var loggerBuilder = loggerBuilderFactory(new LoggerContextBuilder());
55+
56+
loggerRuntime.Initialize(loggerBuilder, cancellationToken);
57+
58+
return loggerRuntime;
59+
}
60+
}

0 commit comments

Comments
 (0)