Skip to content

Commit 3e943e4

Browse files
committed
feat: added ability to disable MS Logging related classes. Dropped support for .NET 7
1 parent 31f431e commit 3e943e4

1,788 files changed

Lines changed: 15584 additions & 2556 deletions

File tree

Some content is hidden

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

README.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ The latest version is available on [NuGet](https://www.nuget.org/packages/Purvie
66

77
* .NET Framework 4.7.2
88
* .NET Framework 4.8
9-
* .NET 7
109
* .NET 8
1110
* .NET 9
1211

@@ -35,11 +34,17 @@ interface IEntityStoreTelemetry
3534
void RetrievedEntity(Activity? activity, float totalValue, int lastUpdatedByUserId);
3635

3736
/// <summary>
38-
/// Generates a structured log message using an ILogger.
37+
/// Generates a structured log message using an ILogger - defaults to Informational.
3938
/// </summary>
4039
[Log]
4140
void ProcessingEntity(int entityId, string updateState);
4241

42+
/// <summary>
43+
/// Generates a structured log message using an ILogger, specifically defined as Informational.
44+
/// </summary>
45+
[Info]
46+
void ProcessingAnotherEntity(int entityId, string updateState);
47+
4348
/// <summary>
4449
/// Adds 1 to a Counter<T> with the entityId as a Tag.
4550
/// </summary>
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
namespace Purview.Telemetry.SourceGenerator.Logging;
2+
3+
partial class TelemetrySourceGeneratorLoggingTests
4+
{
5+
[Fact]
6+
public async Task Generate_GivenNoReferenceToILoggerAndNoLoggerRequested_DoesNotGenerateDiagnostic()
7+
{
8+
// Arrange
9+
const string basicActivity = @"
10+
using Purview.Telemetry.Activities;
11+
12+
namespace Testing;
13+
14+
[ActivitySource(""testing-activity-source"")]
15+
public interface ITestActivities {
16+
[Activity]
17+
System.Diagnostics.Activity? Activity([Baggage]string stringParam, [Tag]int intParam, bool boolParam);
18+
19+
[Event]
20+
void Event(System.Diagnostics.Activity? activity, [Baggage]string stringParam, [Tag]int intParam, bool boolParam);
21+
}
22+
";
23+
24+
// Act
25+
var generationResult = await GenerateAsync(basicActivity, includeILoggerRef: false);
26+
27+
// Assert
28+
await TestHelpers.Verify(generationResult);
29+
}
30+
31+
[Fact]
32+
public async Task Generate_GivenNoReferenceToILoggerAndNoLoggerRequested_CompilesWithoutILoggerRef()
33+
{
34+
// Arrange
35+
const string basicActivity = @"
36+
using Purview.Telemetry.Activities;
37+
38+
namespace Testing;
39+
40+
[ActivitySource(""testing-activity-source"")]
41+
public interface ITestActivities {
42+
[Activity]
43+
System.Diagnostics.Activity? Activity([Baggage]string stringParam, [Tag]int intParam, bool boolParam);
44+
45+
[Event]
46+
void Event(System.Diagnostics.Activity? activity, [Baggage]string stringParam, [Tag]int intParam, bool boolParam);
47+
}
48+
";
49+
50+
// Act
51+
var generationResult = await GenerateAsync(basicActivity, includeILoggerRef: false);
52+
53+
// Assert
54+
await TestHelpers.Verify(generationResult, validateNonEmptyDiagnostics: false, whenValidatingDiagnosticsIgnoreNonErrors: true);
55+
}
56+
}

src/Purview.Telemetry.SourceGenerator.IntegrationTests/Snapshots/TelemetrySourceGeneratorActivityTests.Generate_GivenAssemblyEnableDI_GeneratesActivity.DotNet9_0#CriticalAttribute.g.verified.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515

1616
namespace Purview.Telemetry.Logging;
1717

18+
#if !EXCLUDE_PURVIEW_TELEMETRY_LOGGING
19+
1820
/// <summary>
1921
/// Marker attribute used as an alternative to <see cref="LogAttribute"/>, where the <see cref="LogAttribute.Level"/>
2022
/// is set to <see cref="Microsoft.Extensions.Logging.LogLevel.Critical"/>.
@@ -84,3 +86,5 @@ public CriticalAttribute(int eventId, string? messageTemplate = null, string? na
8486
/// </summary>
8587
public string? Name { get; set; }
8688
}
89+
90+
#endif

src/Purview.Telemetry.SourceGenerator.IntegrationTests/Snapshots/TelemetrySourceGeneratorActivityTests.Generate_GivenAssemblyEnableDI_GeneratesActivity.DotNet9_0#DebugAttribute.g.verified.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515

1616
namespace Purview.Telemetry.Logging;
1717

18+
#if !EXCLUDE_PURVIEW_TELEMETRY_LOGGING
19+
1820
/// <summary>
1921
/// Marker attribute used as an alternative to <see cref="LogAttribute"/>, where the <see cref="LogAttribute.Level"/>
2022
/// is set to <see cref="Microsoft.Extensions.Logging.LogLevel.Debug"/>.
@@ -84,3 +86,5 @@ public DebugAttribute(int eventId, string? messageTemplate = null, string? name
8486
/// </summary>
8587
public string? Name { get; set; }
8688
}
89+
90+
#endif

src/Purview.Telemetry.SourceGenerator.IntegrationTests/Snapshots/TelemetrySourceGeneratorActivityTests.Generate_GivenAssemblyEnableDI_GeneratesActivity.DotNet9_0#ErrorAttribute.g.verified.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515

1616
namespace Purview.Telemetry.Logging;
1717

18+
#if !EXCLUDE_PURVIEW_TELEMETRY_LOGGING
19+
1820
/// <summary>
1921
/// Marker attribute used as an alternative to <see cref="LogAttribute"/>, where the <see cref="LogAttribute.Level"/>
2022
/// is set to <see cref="Microsoft.Extensions.Logging.LogLevel.Error"/>.
@@ -84,3 +86,5 @@ public ErrorAttribute(int eventId, string? messageTemplate = null, string? name
8486
/// </summary>
8587
public string? Name { get; set; }
8688
}
89+
90+
#endif

src/Purview.Telemetry.SourceGenerator.IntegrationTests/Snapshots/TelemetrySourceGeneratorActivityTests.Generate_GivenAssemblyEnableDI_GeneratesActivity.DotNet9_0#InfoAttribute.g.verified.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515

1616
namespace Purview.Telemetry.Logging;
1717

18+
#if !EXCLUDE_PURVIEW_TELEMETRY_LOGGING
19+
1820
/// <summary>
1921
/// Marker attribute used as an alternative to <see cref="LogAttribute"/>, where the <see cref="LogAttribute.Level"/>
2022
/// is set to <see cref="Microsoft.Extensions.Logging.LogLevel.Info"/>.
@@ -84,3 +86,5 @@ public InfoAttribute(int eventId, string? messageTemplate = null, string? name =
8486
/// </summary>
8587
public string? Name { get; set; }
8688
}
89+
90+
#endif

src/Purview.Telemetry.SourceGenerator.IntegrationTests/Snapshots/TelemetrySourceGeneratorActivityTests.Generate_GivenAssemblyEnableDI_GeneratesActivity.DotNet9_0#LogAttribute.g.verified.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515

1616
namespace Purview.Telemetry.Logging;
1717

18+
#if !EXCLUDE_PURVIEW_TELEMETRY_LOGGING
19+
1820
/// <summary>
1921
/// Marker attribute required for log entry generation, based on
2022
/// high-performance <see cref="Microsoft.Extensions.Logging.LoggerMessage"/>.
@@ -102,3 +104,5 @@ public LogAttribute(int eventId, Microsoft.Extensions.Logging.LogLevel level, st
102104
/// </summary>
103105
public string? Name { get; set; }
104106
}
107+
108+
#endif

src/Purview.Telemetry.SourceGenerator.IntegrationTests/Snapshots/TelemetrySourceGeneratorActivityTests.Generate_GivenAssemblyEnableDI_GeneratesActivity.DotNet9_0#LogPrefixType.g.verified.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515

1616
namespace Purview.Telemetry.Logging;
1717

18+
#if !EXCLUDE_PURVIEW_TELEMETRY_LOGGING
19+
1820
/// <summary>
1921
/// The types of prefixes that can be used for the log entry name generation.
2022
/// </summary>
@@ -47,3 +49,5 @@ enum LogPrefixType
4749
/// </summary>
4850
NoSuffix
4951
}
52+
53+
#endif

src/Purview.Telemetry.SourceGenerator.IntegrationTests/Snapshots/TelemetrySourceGeneratorActivityTests.Generate_GivenAssemblyEnableDI_GeneratesActivity.DotNet9_0#LoggerAttribute.g.verified.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515

1616
namespace Purview.Telemetry.Logging;
1717

18+
#if !EXCLUDE_PURVIEW_TELEMETRY_LOGGING
19+
1820
/// <summary>
1921
/// Marker attribute required for Log generation.
2022
/// </summary>
@@ -66,3 +68,5 @@ public LoggerAttribute(Microsoft.Extensions.Logging.LogLevel defaultLevel, strin
6668
/// </summary>
6769
public LogPrefixType PrefixType { get; set; } = LogPrefixType.Default;
6870
}
71+
72+
#endif

src/Purview.Telemetry.SourceGenerator.IntegrationTests/Snapshots/TelemetrySourceGeneratorActivityTests.Generate_GivenAssemblyEnableDI_GeneratesActivity.DotNet9_0#LoggerGenerationAttribute.g.verified.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515

1616
namespace Purview.Telemetry.Logging;
1717

18+
#if !EXCLUDE_PURVIEW_TELEMETRY_LOGGING
19+
1820
/// <summary>
1921
/// Sets defaults for the generation of loggers and log entries.
2022
/// </summary>
@@ -46,3 +48,5 @@ public LoggerGenerationAttribute(Microsoft.Extensions.Logging.LogLevel defaultLe
4648
/// </summary>
4749
public Microsoft.Extensions.Logging.LogLevel DefaultLevel { get; set; } = Microsoft.Extensions.Logging.LogLevel.Information;
4850
}
51+
52+
#endif

0 commit comments

Comments
 (0)