Skip to content

Commit c4ffa42

Browse files
authored
14 deps conflict with other source generators (#20)
Added support for Roslyn 4.8 with file path based interceptors
1 parent b4129c5 commit c4ffa42

File tree

72 files changed

+493
-157
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+493
-157
lines changed

.github/workflows/dotnet_build.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@ jobs:
1919
- name: Setup .NET
2020
uses: actions/setup-dotnet@v4
2121
with:
22-
dotnet-version: 8.0.x
22+
dotnet-version: 9.0.x
2323
- name: Restore dependencies
24-
run: dotnet restore
24+
run: dotnet restore AutoLoggerMessage.slnx
2525
- name: Build
26-
run: dotnet build --no-restore
26+
run: dotnet build --no-restore AutoLoggerMessage.slnx
2727
- name: Test
28-
run: dotnet test --no-build --verbosity normal
28+
run: dotnet test --no-build --verbosity normal AutoLoggerMessage.slnx

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ dlldata.c
4040

4141
# NuGet Packages
4242
*.nupkg
43-
nupkg
4443
# The packages folder can be ignored because of Package Restore
4544
**/packages/*
4645
# except build/, which is used as an MSBuild target.
@@ -74,3 +73,5 @@ BenchmarkDotNet.Artifacts/
7473

7574
# Test snapshots
7675
**/*.received.*
76+
77+
artifacts/

AutoLoggerMessage.sln

Lines changed: 58 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,80 @@
11

22
Microsoft Visual Studio Solution File, Format Version 12.00
3-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AutoLoggerMessageGenerator", "src\AutoLoggerMessageGenerator\AutoLoggerMessageGenerator.csproj", "{821CF231-77D9-47B3-BEEE-585F0D5381B3}"
3+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Benchmarks", "benchmarks\Benchmarks", "{F87C8D12-1787-4A2E-B9B1-ECEC6B681577}"
44
EndProject
5-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AutoLoggerMessageGenerator.IntegrationTests", "src\AutoLoggerMessageGenerator.IntegrationTests\AutoLoggerMessageGenerator.IntegrationTests.csproj", "{0BB90BC1-5488-4739-A3CD-39DAAB634D78}"
5+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AutoLoggerMessageGenerator.Sandbox", "src\AutoLoggerMessageGenerator.Sandbox\AutoLoggerMessageGenerator.Sandbox.csproj", "{EBD13BAE-5907-4D0F-8601-83CBAC9556CF}"
66
EndProject
7-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AutoLoggerMessageGenerator.UnitTests", "src\AutoLoggerMessageGenerator.UnitTests\AutoLoggerMessageGenerator.UnitTests.csproj", "{0D854820-5382-4CFC-9D9B-5A94DBD62B35}"
7+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Generators", "Generators", "{426D0845-2D45-4FA5-96EA-D95F5038E7FE}"
88
EndProject
9-
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Benchmarks", "Benchmarks", "{F87C8D12-1787-4A2E-B9B1-ECEC6B681577}"
10-
ProjectSection(SolutionItems) = preProject
11-
src\Benchmarks\Directory.Packages.props = src\Benchmarks\Directory.Packages.props
12-
EndProjectSection
9+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{6ACC55AF-EC6A-4EE2-A8D8-DC4D9D7751B8}"
1310
EndProject
14-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AutoLoggerMessageGenerator.Benchmarks", "src\Benchmarks\AutoLoggerMessageGenerator.Benchmarks\AutoLoggerMessageGenerator.Benchmarks.csproj", "{1330C625-7850-4DF0-B35B-FF29C8B4828A}"
15-
ProjectSection(ProjectDependencies) = postProject
16-
EndProjectSection
11+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AutoLoggerMessageGenerator.Benchmarks", "benchmarks\AutoLoggerMessageGenerator.Benchmarks.csproj", "{DA4FDEEE-F1C1-41FD-AFC1-D6C0BFC80E06}"
1712
EndProject
18-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AutoLoggerMessageGenerator.Sandbox", "src\AutoLoggerMessageGenerator.Sandbox\AutoLoggerMessageGenerator.Sandbox.csproj", "{EBD13BAE-5907-4D0F-8601-83CBAC9556CF}"
13+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AutoLoggerMessageGenerator.Roslyn4_8", "src\AutoLoggerMessageGenerator\AutoLoggerMessageGenerator.Roslyn4_8.csproj", "{344BEFFE-EEB9-426B-9410-CADB053299C3}"
14+
EndProject
15+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AutoLoggerMessageGenerator.Pack", "src\AutoLoggerMessageGenerator\AutoLoggerMessageGenerator.Pack.csproj", "{FFF22741-78A6-4E00-8967-3FC44970CD7E}"
16+
EndProject
17+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AutoLoggerMessageGenerator.Roslyn4_11", "src\AutoLoggerMessageGenerator\AutoLoggerMessageGenerator.Roslyn4_11.csproj", "{672B4C10-2A69-48EC-BEF6-2A8B2932E6D0}"
18+
EndProject
19+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AutoLoggerMessageGenerator.BuildOutput", "src\AutoLoggerMessageGenerator.BuildOutput\AutoLoggerMessageGenerator.BuildOutput.csproj", "{D31BC7D9-7388-4692-A4E5-6C5420B51C27}"
20+
EndProject
21+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AutoLoggerMessageGenerator.IntegrationTests", "tests\AutoLoggerMessageGenerator.IntegrationTests\AutoLoggerMessageGenerator.IntegrationTests.csproj", "{F05C3686-2B94-4355-B67F-44C9F34DC554}"
22+
EndProject
23+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AutoLoggerMessageGenerator.UnitTests.Roslyn4_8", "tests\AutoLoggerMessageGenerator.UnitTests\AutoLoggerMessageGenerator.UnitTests.Roslyn4_8.csproj", "{06D28670-E3DA-4A89-BB6D-BD1E3AF0E726}"
24+
EndProject
25+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AutoLoggerMessageGenerator.UnitTests.Roslyn4_11", "tests\AutoLoggerMessageGenerator.UnitTests\AutoLoggerMessageGenerator.UnitTests.Roslyn4_11.csproj", "{3926603D-B22F-4499-880F-B2EE4D63B48B}"
1926
EndProject
2027
Global
2128
GlobalSection(SolutionConfigurationPlatforms) = preSolution
2229
Debug|Any CPU = Debug|Any CPU
2330
Release|Any CPU = Release|Any CPU
2431
EndGlobalSection
2532
GlobalSection(ProjectConfigurationPlatforms) = postSolution
26-
{821CF231-77D9-47B3-BEEE-585F0D5381B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
27-
{821CF231-77D9-47B3-BEEE-585F0D5381B3}.Debug|Any CPU.Build.0 = Debug|Any CPU
28-
{821CF231-77D9-47B3-BEEE-585F0D5381B3}.Release|Any CPU.ActiveCfg = Release|Any CPU
29-
{821CF231-77D9-47B3-BEEE-585F0D5381B3}.Release|Any CPU.Build.0 = Release|Any CPU
30-
{0BB90BC1-5488-4739-A3CD-39DAAB634D78}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
31-
{0BB90BC1-5488-4739-A3CD-39DAAB634D78}.Debug|Any CPU.Build.0 = Debug|Any CPU
32-
{0BB90BC1-5488-4739-A3CD-39DAAB634D78}.Release|Any CPU.ActiveCfg = Release|Any CPU
33-
{0BB90BC1-5488-4739-A3CD-39DAAB634D78}.Release|Any CPU.Build.0 = Release|Any CPU
34-
{0D854820-5382-4CFC-9D9B-5A94DBD62B35}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
35-
{0D854820-5382-4CFC-9D9B-5A94DBD62B35}.Debug|Any CPU.Build.0 = Debug|Any CPU
36-
{0D854820-5382-4CFC-9D9B-5A94DBD62B35}.Release|Any CPU.ActiveCfg = Release|Any CPU
37-
{0D854820-5382-4CFC-9D9B-5A94DBD62B35}.Release|Any CPU.Build.0 = Release|Any CPU
38-
{1330C625-7850-4DF0-B35B-FF29C8B4828A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
39-
{1330C625-7850-4DF0-B35B-FF29C8B4828A}.Debug|Any CPU.Build.0 = Debug|Any CPU
40-
{1330C625-7850-4DF0-B35B-FF29C8B4828A}.Release|Any CPU.ActiveCfg = Release|Any CPU
41-
{1330C625-7850-4DF0-B35B-FF29C8B4828A}.Release|Any CPU.Build.0 = Release|Any CPU
4233
{EBD13BAE-5907-4D0F-8601-83CBAC9556CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
4334
{EBD13BAE-5907-4D0F-8601-83CBAC9556CF}.Debug|Any CPU.Build.0 = Debug|Any CPU
4435
{EBD13BAE-5907-4D0F-8601-83CBAC9556CF}.Release|Any CPU.ActiveCfg = Release|Any CPU
4536
{EBD13BAE-5907-4D0F-8601-83CBAC9556CF}.Release|Any CPU.Build.0 = Release|Any CPU
37+
{DA4FDEEE-F1C1-41FD-AFC1-D6C0BFC80E06}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
38+
{DA4FDEEE-F1C1-41FD-AFC1-D6C0BFC80E06}.Debug|Any CPU.Build.0 = Debug|Any CPU
39+
{DA4FDEEE-F1C1-41FD-AFC1-D6C0BFC80E06}.Release|Any CPU.ActiveCfg = Release|Any CPU
40+
{DA4FDEEE-F1C1-41FD-AFC1-D6C0BFC80E06}.Release|Any CPU.Build.0 = Release|Any CPU
41+
{344BEFFE-EEB9-426B-9410-CADB053299C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
42+
{344BEFFE-EEB9-426B-9410-CADB053299C3}.Debug|Any CPU.Build.0 = Debug|Any CPU
43+
{344BEFFE-EEB9-426B-9410-CADB053299C3}.Release|Any CPU.ActiveCfg = Release|Any CPU
44+
{344BEFFE-EEB9-426B-9410-CADB053299C3}.Release|Any CPU.Build.0 = Release|Any CPU
45+
{FFF22741-78A6-4E00-8967-3FC44970CD7E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
46+
{FFF22741-78A6-4E00-8967-3FC44970CD7E}.Debug|Any CPU.Build.0 = Debug|Any CPU
47+
{FFF22741-78A6-4E00-8967-3FC44970CD7E}.Release|Any CPU.ActiveCfg = Release|Any CPU
48+
{FFF22741-78A6-4E00-8967-3FC44970CD7E}.Release|Any CPU.Build.0 = Release|Any CPU
49+
{672B4C10-2A69-48EC-BEF6-2A8B2932E6D0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
50+
{672B4C10-2A69-48EC-BEF6-2A8B2932E6D0}.Debug|Any CPU.Build.0 = Debug|Any CPU
51+
{672B4C10-2A69-48EC-BEF6-2A8B2932E6D0}.Release|Any CPU.ActiveCfg = Release|Any CPU
52+
{672B4C10-2A69-48EC-BEF6-2A8B2932E6D0}.Release|Any CPU.Build.0 = Release|Any CPU
53+
{D31BC7D9-7388-4692-A4E5-6C5420B51C27}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
54+
{D31BC7D9-7388-4692-A4E5-6C5420B51C27}.Debug|Any CPU.Build.0 = Debug|Any CPU
55+
{D31BC7D9-7388-4692-A4E5-6C5420B51C27}.Release|Any CPU.ActiveCfg = Release|Any CPU
56+
{D31BC7D9-7388-4692-A4E5-6C5420B51C27}.Release|Any CPU.Build.0 = Release|Any CPU
57+
{F05C3686-2B94-4355-B67F-44C9F34DC554}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
58+
{F05C3686-2B94-4355-B67F-44C9F34DC554}.Debug|Any CPU.Build.0 = Debug|Any CPU
59+
{F05C3686-2B94-4355-B67F-44C9F34DC554}.Release|Any CPU.ActiveCfg = Release|Any CPU
60+
{F05C3686-2B94-4355-B67F-44C9F34DC554}.Release|Any CPU.Build.0 = Release|Any CPU
61+
{06D28670-E3DA-4A89-BB6D-BD1E3AF0E726}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
62+
{06D28670-E3DA-4A89-BB6D-BD1E3AF0E726}.Debug|Any CPU.Build.0 = Debug|Any CPU
63+
{06D28670-E3DA-4A89-BB6D-BD1E3AF0E726}.Release|Any CPU.ActiveCfg = Release|Any CPU
64+
{06D28670-E3DA-4A89-BB6D-BD1E3AF0E726}.Release|Any CPU.Build.0 = Release|Any CPU
65+
{3926603D-B22F-4499-880F-B2EE4D63B48B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
66+
{3926603D-B22F-4499-880F-B2EE4D63B48B}.Debug|Any CPU.Build.0 = Debug|Any CPU
67+
{3926603D-B22F-4499-880F-B2EE4D63B48B}.Release|Any CPU.ActiveCfg = Release|Any CPU
68+
{3926603D-B22F-4499-880F-B2EE4D63B48B}.Release|Any CPU.Build.0 = Release|Any CPU
4669
EndGlobalSection
4770
GlobalSection(NestedProjects) = preSolution
48-
{1330C625-7850-4DF0-B35B-FF29C8B4828A} = {F87C8D12-1787-4A2E-B9B1-ECEC6B681577}
71+
{DA4FDEEE-F1C1-41FD-AFC1-D6C0BFC80E06} = {F87C8D12-1787-4A2E-B9B1-ECEC6B681577}
72+
{344BEFFE-EEB9-426B-9410-CADB053299C3} = {426D0845-2D45-4FA5-96EA-D95F5038E7FE}
73+
{FFF22741-78A6-4E00-8967-3FC44970CD7E} = {426D0845-2D45-4FA5-96EA-D95F5038E7FE}
74+
{672B4C10-2A69-48EC-BEF6-2A8B2932E6D0} = {426D0845-2D45-4FA5-96EA-D95F5038E7FE}
75+
{D31BC7D9-7388-4692-A4E5-6C5420B51C27} = {426D0845-2D45-4FA5-96EA-D95F5038E7FE}
76+
{F05C3686-2B94-4355-B67F-44C9F34DC554} = {6ACC55AF-EC6A-4EE2-A8D8-DC4D9D7751B8}
77+
{06D28670-E3DA-4A89-BB6D-BD1E3AF0E726} = {6ACC55AF-EC6A-4EE2-A8D8-DC4D9D7751B8}
78+
{3926603D-B22F-4499-880F-B2EE4D63B48B} = {6ACC55AF-EC6A-4EE2-A8D8-DC4D9D7751B8}
4979
EndGlobalSection
5080
EndGlobal

AutoLoggerMessage.slnx

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<Solution>
2+
<Folder Name="/Benchmarks/">
3+
<Project Path="benchmarks/AutoLoggerMessageGenerator.Benchmarks.csproj" />
4+
</Folder>
5+
<Folder Name="/Generators/">
6+
<Project Path="src/AutoLoggerMessageGenerator.BuildOutput/AutoLoggerMessageGenerator.BuildOutput.csproj" />
7+
<Project Path="src/AutoLoggerMessageGenerator/AutoLoggerMessageGenerator.Pack.csproj" />
8+
<Project Path="src/AutoLoggerMessageGenerator/AutoLoggerMessageGenerator.Roslyn4_11.csproj" />
9+
<Project Path="src/AutoLoggerMessageGenerator/AutoLoggerMessageGenerator.Roslyn4_8.csproj" />
10+
</Folder>
11+
<Folder Name="/Tests/">
12+
<Project Path="tests/AutoLoggerMessageGenerator.IntegrationTests/AutoLoggerMessageGenerator.IntegrationTests.csproj" />
13+
<Project Path="tests/AutoLoggerMessageGenerator.UnitTests/AutoLoggerMessageGenerator.UnitTests.Roslyn4_11.csproj" />
14+
<Project Path="tests/AutoLoggerMessageGenerator.UnitTests/AutoLoggerMessageGenerator.UnitTests.Roslyn4_8.csproj" />
15+
</Folder>
16+
<Project Path="src/AutoLoggerMessageGenerator.Sandbox/AutoLoggerMessageGenerator.Sandbox.csproj" />
17+
</Solution>

Directory.Build.props

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<Project>
2+
<PropertyGroup>
3+
<ImplicitUsings>enable</ImplicitUsings>
4+
<LangVersion>latest</LangVersion>
5+
<Nullable>enable</Nullable>
6+
<InterceptorsPreviewNamespaces>$(InterceptorsPreviewNamespaces);Microsoft.Extensions.Logging.AutoLoggerMessage</InterceptorsPreviewNamespaces>
7+
<NoPackageAnalysis>true</NoPackageAnalysis>
8+
<GeneratePackageOnBuild>False</GeneratePackageOnBuild>
9+
<PackageOutputPath>$(MSBuildThisFileDirectory)artifacts</PackageOutputPath>
10+
<CheckEolTargetFramework>false</CheckEolTargetFramework>
11+
<SuppressTfmSupportBuildWarnings>true</SuppressTfmSupportBuildWarnings>
12+
<UseArtifactsOutput>true</UseArtifactsOutput>
13+
</PropertyGroup>
14+
</Project>

README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ Take a look at [benchmark](https://github.com/stbychkov/AutoLoggerMessage/wiki/B
4747
parameters ([src](https://learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.logging.loggermessage.define))
4848
so if you pass more than that, the default `Logger.Log(*, params object[] args)` will be executed.
4949
* As this solution is based on interceptors, only .NET 8+ is supported
50-
* Hash-based interceptors are incompatible with .NET SDK versions earlier than 8.0.8, most likely due to differences in the compiler version. To resolve this issue, please update your SDK to version [8.0.8](https://dotnet.microsoft.com/en-us/download/dotnet/8.0) or later.
5150
* Generic arguments [are not supported](https://github.com/dotnet/extensions/blob/ca2fe808b3d6c55817467f46ca58657456b4a928/docs/list-of-diagnostics.md?plain=1#L66C4-L66C13). If you pass a generic argument to the log function, the default `Logger.Log(*, params object[] args)` will be executed.
5251

5352
## Is something wrong?
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
<PropertyGroup>
3+
<TargetFramework>net8.0</TargetFramework>
4+
<OutputType>Exe</OutputType>
5+
</PropertyGroup>
6+
7+
<PropertyGroup>
8+
<PlatformTarget>AnyCPU</PlatformTarget>
9+
<DebugType>pdbonly</DebugType>
10+
<DebugSymbols>false</DebugSymbols>
11+
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
12+
<Optimize>true</Optimize>
13+
<Configuration>Release</Configuration>
14+
<IsPackable>false</IsPackable>
15+
</PropertyGroup>
16+
17+
<ItemGroup>
18+
<PackageReference Include="BenchmarkDotNet"/>
19+
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions"/>
20+
<PackageReference Include="Microsoft.Extensions.Telemetry.Abstractions"/>
21+
</ItemGroup>
22+
23+
<ItemGroup>
24+
<ProjectReference Include="..\src\AutoLoggerMessageGenerator\AutoLoggerMessageGenerator.Roslyn4_11.csproj"/>
25+
</ItemGroup>
26+
27+
<ItemGroup>
28+
<Content Include="BenchmarkFiles\**\*">
29+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
30+
</Content>
31+
</ItemGroup>
32+
33+
<Target Name="DisableAnalyzers" BeforeTargets="CoreCompile">
34+
<ItemGroup>
35+
<Analyzer Remove="@(Analyzer)"/>
36+
</ItemGroup>
37+
</Target>
38+
</Project>

src/Benchmarks/AutoLoggerMessageGenerator.Benchmarks/BenchmarkFiles/CustomNullLogger.cs renamed to benchmarks/BenchmarkFiles/CustomNullLogger.cs

File renamed without changes.

src/Benchmarks/AutoLoggerMessageGenerator.Benchmarks/BenchmarkFiles/ExecutionTimeBenchmark.cs renamed to benchmarks/BenchmarkFiles/ExecutionTimeBenchmark.cs

File renamed without changes.

src/Benchmarks/AutoLoggerMessageGenerator.Benchmarks/CommandRunner.cs renamed to benchmarks/CommandRunner.cs

File renamed without changes.

0 commit comments

Comments
 (0)