Skip to content

Commit 538cf2f

Browse files
authored
Merge pull request #283 from serilog/dev
10.0.0 Release
2 parents 6c52f28 + d220ae7 commit 538cf2f

File tree

11 files changed

+76
-34
lines changed

11 files changed

+76
-34
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ jobs:
2626
- name: Setup
2727
uses: actions/setup-dotnet@v4
2828
with:
29-
dotnet-version: 9.0.x
29+
dotnet-version: 10.0.x
3030
- name: Compute build number
3131
shell: bash
3232
run: |

Directory.Version.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project>
22
<PropertyGroup>
33
<!-- This must match the major and minor components of the referenced Microsoft.Extensions.Logging package. -->
4-
<VersionPrefix>9.0.2</VersionPrefix>
4+
<VersionPrefix>10.0.0</VersionPrefix>
55
</PropertyGroup>
66
</Project>

global.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"sdk": {
3-
"version": "9.0.100",
4-
"allowPrerelease": false,
3+
"version": "10.0.100",
4+
"allowPrerelease": true,
55
"rollForward": "latestFeature"
66
}
77
}

samples/Sample/Sample.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>net9.0</TargetFramework>
4+
<TargetFramework>net10.0</TargetFramework>
55
<OutputType>Exe</OutputType>
66
</PropertyGroup>
77

@@ -10,8 +10,8 @@
1010
</ItemGroup>
1111

1212
<ItemGroup>
13-
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="9.0.0" />
14-
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="9.0.0" />
13+
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="10.0.0-*" />
14+
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="10.0.0-*" />
1515
<PackageReference Include="Serilog.Sinks.Console" Version="6.0.0" />
1616
</ItemGroup>
1717

samples/SampleWithExternalScope/SampleWithExternalScope.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@
22

33
<PropertyGroup>
44
<OutputType>Exe</OutputType>
5-
<TargetFramework>net9.0</TargetFramework>
5+
<TargetFramework>net10.0</TargetFramework>
66
</PropertyGroup>
77

88
<ItemGroup>
99
<ProjectReference Include="..\..\src\Serilog.Extensions.Logging\Serilog.Extensions.Logging.csproj" />
1010
</ItemGroup>
1111

1212
<ItemGroup>
13-
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="9.0.0" />
14-
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="9.0.0" />
13+
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="10.0.0-*" />
14+
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="10.0.0-*" />
1515
<PackageReference Include="Serilog.Sinks.Console" Version="6.0.0" />
1616
</ItemGroup>
1717

samples/SampleWithMelProviders/SampleWithMelProviders.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
</ItemGroup>
1111

1212
<ItemGroup>
13-
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="9.0.0" />
14-
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="9.0.0" />
13+
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="10.0.0-*" />
14+
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="10.0.0-*" />
1515
<PackageReference Include="Serilog.Sinks.Console" Version="6.0.0" />
1616
</ItemGroup>
1717

serilog-extensions-logging.sln

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,13 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SampleWithExternalScope", "
3232
EndProject
3333
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SampleWithMelProviders", "samples\SampleWithMelProviders\SampleWithMelProviders.csproj", "{B1454759-126F-4F33-84EE-C8E19541DF79}"
3434
EndProject
35+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".github", ".github", "{1990627E-914D-4072-A593-E1FCA2CE110D}"
36+
EndProject
37+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "workflows", "workflows", "{E5A26872-83A7-43A8-8C7D-1C26E56A4FAF}"
38+
ProjectSection(SolutionItems) = preProject
39+
.github\workflows\ci.yml = .github\workflows\ci.yml
40+
EndProjectSection
41+
EndProject
3542
Global
3643
GlobalSection(SolutionConfigurationPlatforms) = preSolution
3744
Debug|Any CPU = Debug|Any CPU
@@ -73,6 +80,7 @@ Global
7380
{6D5986FF-EECD-4E75-8BC6-A5F78AB549B2} = {E30F638E-BBBE-4AD1-93CE-48CC69CFEFE1}
7481
{653092A8-CBAD-40AA-A4CE-F8B19D6492C2} = {F2407211-6043-439C-8E06-3641634332E7}
7582
{B1454759-126F-4F33-84EE-C8E19541DF79} = {F2407211-6043-439C-8E06-3641634332E7}
83+
{E5A26872-83A7-43A8-8C7D-1C26E56A4FAF} = {1990627E-914D-4072-A593-E1FCA2CE110D}
7684
EndGlobalSection
7785
GlobalSection(ExtensibilityGlobals) = postSolution
7886
SolutionGuid = {811E61C5-3871-4633-AFAE-B35B619C8A10}

src/Serilog.Extensions.Logging/Extensions/Logging/SerilogLoggerProvider.cs

Lines changed: 38 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ public sealed class SerilogLoggerProvider : ILoggerProvider, ILogEventEnricher,
2424
// May be null; if it is, Log.Logger will be lazily used
2525
readonly ILogger? _logger;
2626
readonly Action? _dispose;
27+
readonly ThreadLocal<ScopeCollector> _scopeCollector = new(() => new ScopeCollector());
2728
#if FEATURE_ASYNCDISPOSABLE
2829
readonly Func<ValueTask>? _disposeAsync;
2930
#endif
@@ -90,35 +91,38 @@ public IDisposable BeginScope<T>(T state)
9091
/// <inheritdoc />
9192
public void Enrich(LogEvent logEvent, ILogEventPropertyFactory propertyFactory)
9293
{
93-
List<LogEventPropertyValue>? scopeItems = null;
94+
var scopeCollector = _scopeCollector.Value!;
95+
9496
for (var scope = CurrentScope; scope != null; scope = scope.Parent)
9597
{
9698
scope.EnrichAndCreateScopeItem(logEvent, propertyFactory, out var scopeItem);
9799

98100
if (scopeItem != null)
99101
{
100-
scopeItems ??= [];
101-
scopeItems.Add(scopeItem);
102+
scopeCollector.AddItem(scopeItem);
102103
}
103104
}
104105

105-
scopeItems?.Reverse();
106+
scopeCollector.ReverseItems();
106107

107-
_externalScopeProvider?.ForEachScope((state, accumulatingLogEvent) =>
108+
_externalScopeProvider?.ForEachScope(static (state, parameters) =>
108109
{
109110
SerilogLoggerScope.EnrichWithStateAndCreateScopeItem(
110-
accumulatingLogEvent, propertyFactory, state, update: true, out var scopeItem);
111+
parameters.LogEvent,
112+
parameters.PropertyFactory,
113+
state,
114+
update: true,
115+
out var scopeItem);
111116

112117
if (scopeItem != null)
113118
{
114-
scopeItems ??= new List<LogEventPropertyValue>();
115-
scopeItems.Add(scopeItem);
119+
parameters.ScopeCollector.AddItem(scopeItem);
116120
}
117-
}, logEvent);
121+
}, (ScopeCollector: scopeCollector, PropertyFactory: propertyFactory, LogEvent: logEvent));
118122

119-
if (scopeItems != null)
123+
if (scopeCollector.Complete() is { } items)
120124
{
121-
logEvent.AddPropertyIfAbsent(new LogEventProperty(ScopePropertyName, new SequenceValue(scopeItems)));
125+
logEvent.AddPropertyIfAbsent(new LogEventProperty(ScopePropertyName, new SequenceValue(items)));
122126
}
123127
}
124128

@@ -149,4 +153,27 @@ public ValueTask DisposeAsync()
149153
return _disposeAsync?.Invoke() ?? default;
150154
}
151155
#endif
156+
157+
/// <summary>
158+
/// A wrapper around a list to allow lazy initialization when iterating through scopes.
159+
/// </summary>
160+
sealed class ScopeCollector
161+
{
162+
List<LogEventPropertyValue>? _scopeItems;
163+
164+
public void AddItem(LogEventPropertyValue scopeItem)
165+
{
166+
_scopeItems ??= [];
167+
_scopeItems.Add(scopeItem);
168+
}
169+
170+
public void ReverseItems() => _scopeItems?.Reverse();
171+
172+
public List<LogEventPropertyValue>? Complete()
173+
{
174+
var scopeItems = _scopeItems;
175+
_scopeItems = null;
176+
return scopeItems;
177+
}
178+
}
152179
}

src/Serilog.Extensions.Logging/Serilog.Extensions.Logging.csproj

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<Authors>Microsoft;Serilog Contributors</Authors>
66
<!-- These must match the Dependencies tab in https://www.nuget.org/packages/microsoft.extensions.logging at
77
the target version. -->
8-
<TargetFrameworks>net462;netstandard2.0;netstandard2.1;net8.0;net9.0</TargetFrameworks>
8+
<TargetFrameworks>net462;netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0</TargetFrameworks>
99
<GenerateDocumentationFile>true</GenerateDocumentationFile>
1010
<PackageTags>serilog;Microsoft.Extensions.Logging</PackageTags>
1111
<PackageIcon>serilog-extension-nuget.png</PackageIcon>
@@ -22,7 +22,10 @@
2222
<None Include="..\..\README.md" Pack="true" PackagePath="\" Visible="false" />
2323
<PackageReference Include="Serilog" Version="4.2.0" />
2424
<!-- The version of this reference must match the major and minor components of the package version prefix. -->
25-
<PackageReference Include="Microsoft.Extensions.Logging" Version="9.0.0" />
25+
<PackageReference Include="Microsoft.Extensions.Logging" Version="10.0.0" />
26+
</ItemGroup>
27+
28+
<ItemGroup Condition=" '$(TargetFramework)' == 'net462' or '$(TargetFramework)' == 'netstandard2.0' ">
2629
<PackageReference Include="Nullable" Version="1.3.1" PrivateAssets="All" />
2730
</ItemGroup>
2831

@@ -37,4 +40,8 @@
3740
<PropertyGroup Condition=" '$(TargetFramework)' == 'net9.0' ">
3841
<DefineConstants>$(DefineConstants);FEATURE_ITUPLE;FEATURE_ASYNCDISPOSABLE</DefineConstants>
3942
</PropertyGroup>
43+
44+
<PropertyGroup Condition=" '$(TargetFramework)' == 'net10.0' ">
45+
<DefineConstants>$(DefineConstants);FEATURE_ITUPLE;FEATURE_ASYNCDISPOSABLE</DefineConstants>
46+
</PropertyGroup>
4047
</Project>
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
4+
<TargetFrameworks>net8.0;net9.0;net10.0</TargetFrameworks>
55
<GenerateDocumentationFile>false</GenerateDocumentationFile>
66
</PropertyGroup>
77

@@ -10,10 +10,10 @@
1010
</ItemGroup>
1111

1212
<ItemGroup>
13-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
13+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.0" />
1414
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.2" PrivateAssets="All" />
15-
<PackageReference Include="xunit" Version="2.9.2" />
16-
<PackageReference Include="BenchmarkDotNet" Version="0.14.0" />
15+
<PackageReference Include="xunit" Version="2.9.3" />
16+
<PackageReference Include="BenchmarkDotNet" Version="0.15.5" />
1717
</ItemGroup>
1818

1919
</Project>

0 commit comments

Comments
 (0)