Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/net9 #146

Merged
merged 8 commits into from
Nov 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .changeset/ten-games-teach.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"alexaka1.serilog.extensions.formatting": minor
---

Added .Net 9 support

Bump Serilog to 4.1.0
11 changes: 10 additions & 1 deletion .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,9 @@ jobs:
crl3.digicert.com:80
crl4.digicert.com:80
dc.services.visualstudio.com:443
aka.ms:443
dotnetbuilds.azureedge.net:443
dotnetcli.azureedge.net:443
github.com:443
objects.githubusercontent.com:443
s.symcb.com:80
Expand All @@ -64,7 +67,13 @@ jobs:
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false

- name: Setup Dotnet
id: dotnet-setup
uses: actions/setup-dotnet@3e891b0cb619bf60e2c25674b222b8940e2c1c25 # v4.1.0
with:
dotnet-version: |
9.0.x
6.0.x
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@ea9e4e37992a54ee68a9622e985e60c8e8f12d9f # v3.27.4
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ on:
concurrency: ${{ github.workflow }}-${{ github.ref }}
permissions: { }
env:
dotnet: 8.0.x
node: 20.x
dotnet: 9.0.x
node: 22.x
Project: src/Serilog.Extensions.Formatting
PackageJson: src/Serilog.Extensions.Formatting/package.json
Csproj: src/Serilog.Extensions.Formatting/Serilog.Extensions.Formatting.csproj
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ jobs:
uses: actions/setup-dotnet@3e891b0cb619bf60e2c25674b222b8940e2c1c25 # v4.1.0
with:
dotnet-version: |
8.0.x
9.0.x
6.0.x
- name: Dotnet restore
run: dotnet restore
Expand Down
6 changes: 3 additions & 3 deletions Directory.Build.props
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project>
<PropertyGroup>
<TargetFrameworks>net8.0;net6.0;netstandard2.0</TargetFrameworks>
<LangVersion>7.3</LangVersion>
<TargetFrameworks>net9.0;net8.0;net6.0;netstandard2.0</TargetFrameworks>
<LangVersion>12</LangVersion>
<AnalysisLevel>latest</AnalysisLevel>
<ImplicitUsings>disable</ImplicitUsings>
<Nullable>disable</Nullable>
Expand Down Expand Up @@ -30,7 +30,7 @@
<PropertyGroup Condition=" '$(TargetFramework)' == 'net6.0' ">
<DefineConstants>$(DefineConstants);FEATURE_SPAN;FEATURE_DATE_AND_TIME_ONLY;FEATURE_ISPANFORMATTABLE;</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(TargetFramework)' == 'net8.0' ">
<PropertyGroup Condition=" '$(TargetFramework)' == 'net8.0' OR '$(TargetFramework)' == 'net9.0' ">
<DefineConstants>$(DefineConstants);FEATURE_SPAN;FEATURE_DATE_AND_TIME_ONLY;FEATURE_ISPANFORMATTABLE;FEATURE_JSON_NAMING_POLICY;FEATURE_IUTF8SPANFORMATTABLE;</DefineConstants>
</PropertyGroup>
</Project>
49 changes: 24 additions & 25 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -4,30 +4,29 @@
<CentralPackageTransitivePinningEnabled>true</CentralPackageTransitivePinningEnabled>
</PropertyGroup>
<ItemGroup>
<PackageVersion Include="coverlet.collector" Version="6.0.2"/>
<PackageVersion Include="BenchmarkDotNet" Version="0.14.0"/>
<PackageVersion Include="GitHubActionsTestLogger" Version="2.4.1"/>
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="8.0.1"/>
<PackageVersion Include="Microsoft.Extensions.Logging" Version="8.0.1"/>
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.11.1"/>
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="8.0.0"/>
<PackageVersion Include="Moq" Version="4.20.72"/>
<PackageVersion Include="Serilog" Version="4.0.2"/>
<PackageVersion Include="Serilog.Enrichers.Environment" Version="3.0.1"/>
<PackageVersion Include="Serilog.Enrichers.Memory" Version="1.0.4"/>
<PackageVersion Include="Serilog.Enrichers.Process" Version="3.0.0"/>
<PackageVersion Include="Serilog.Enrichers.Sensitive" Version="1.7.3"/>
<PackageVersion Include="Serilog.Enrichers.Thread" Version="4.0.0"/>
<PackageVersion Include="Serilog.Exceptions" Version="8.4.0"/>
<PackageVersion Include="Serilog.Expressions" Version="5.0.0"/>
<PackageVersion Include="Serilog.Extensions.Hosting" Version="8.0.0"/>
<PackageVersion Include="Serilog.Sinks.Async" Version="2.0.0"/>
<PackageVersion Include="Serilog.Sinks.Console" Version="6.0.0"/>
<PackageVersion Include="Serilog.Sinks.File" Version="6.0.0"/>
<PackageVersion Include="System.Collections.Immutable" Version="8.0.0"/>
<PackageVersion Include="System.Reflection.Metadata" Version="8.0.1"/>
<PackageVersion Include="System.Text.Json" Version="8.0.5"/>
<PackageVersion Include="xunit" Version="2.9.2"/>
<PackageVersion Include="xunit.runner.visualstudio" Version="2.8.2"/>
<PackageVersion Include="coverlet.collector" Version="6.0.2" />
<PackageVersion Include="BenchmarkDotNet" Version="0.14.0" />
<PackageVersion Include="GitHubActionsTestLogger" Version="2.4.1" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="8.0.0" />
<PackageVersion Include="Moq" Version="4.20.72" />
<PackageVersion Include="PolySharp" Version="1.14.1" />
<PackageVersion Include="Serilog" Version="4.1.0" />
<PackageVersion Include="Serilog.Enrichers.Environment" Version="3.0.1" />
<PackageVersion Include="Serilog.Enrichers.Memory" Version="1.0.4" />
<PackageVersion Include="Serilog.Enrichers.Process" Version="3.0.0" />
<PackageVersion Include="Serilog.Enrichers.Sensitive" Version="1.7.3" />
<PackageVersion Include="Serilog.Enrichers.Thread" Version="4.0.0" />
<PackageVersion Include="Serilog.Exceptions" Version="8.4.0" />
<PackageVersion Include="Serilog.Expressions" Version="5.0.0" />
<PackageVersion Include="Serilog.Extensions.Hosting" Version="8.0.0" />
<PackageVersion Include="Serilog.Sinks.Async" Version="2.1.0" />
<PackageVersion Include="Serilog.Sinks.Console" Version="6.0.0" />
<PackageVersion Include="Serilog.Sinks.File" Version="6.0.0" />
<PackageVersion Include="System.Collections.Immutable" Version="9.0.0" />
<PackageVersion Include="System.Reflection.Metadata" Version="9.0.0" />
<PackageVersion Include="System.Text.Json" Version="9.0.0" />
<PackageVersion Include="xunit" Version="2.9.2" />
<PackageVersion Include="xunit.runner.visualstudio" Version="2.8.2" />
</ItemGroup>
</Project>
11 changes: 5 additions & 6 deletions src/Serilog.Extensions.Formatting/DefaultNamingPolicy.cs
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
using System.Text.Json;

namespace Serilog.Extensions.Formatting
namespace Serilog.Extensions.Formatting;

internal class DefaultNamingPolicy : JsonNamingPolicy
{
internal class DefaultNamingPolicy : JsonNamingPolicy
public override string ConvertName(string name)
{
public override string ConvertName(string name)
{
return name;
}
return name;
}
}
88 changes: 40 additions & 48 deletions src/Serilog.Extensions.Formatting/JsonLogPropertyNames.cs
Original file line number Diff line number Diff line change
@@ -1,52 +1,44 @@
using System.Text.Json;

namespace Serilog.Extensions.Formatting
namespace Serilog.Extensions.Formatting;

internal readonly struct JsonLogPropertyNames(JsonNamingPolicy namingPolicy)
{
internal readonly struct JsonLogPropertyNames
{
public JsonLogPropertyNames(JsonNamingPolicy namingPolicy)
{
Timestamp = JsonEncodedText.Encode(namingPolicy.ConvertName(TimestampPropertyName));
Level = JsonEncodedText.Encode(namingPolicy.ConvertName(LevelPropertyName));
MessageTemplate = JsonEncodedText.Encode(namingPolicy.ConvertName(MessageTemplatePropertyName));
RenderedMessage = JsonEncodedText.Encode(namingPolicy.ConvertName(RenderedMessagePropertyName));
TraceId = JsonEncodedText.Encode(namingPolicy.ConvertName(TraceIdPropertyName));
SpanId = JsonEncodedText.Encode(namingPolicy.ConvertName(SpanIdPropertyName));
Exception = JsonEncodedText.Encode(namingPolicy.ConvertName(ExceptionPropertyName));
Properties = JsonEncodedText.Encode(namingPolicy.ConvertName(PropertiesPropertyName));
Renderings = JsonEncodedText.Encode(namingPolicy.ConvertName(RenderingsPropertyName));
Null = JsonEncodedText.Encode(namingPolicy.ConvertName(NullPropertyName));
TypeTag = JsonEncodedText.Encode(namingPolicy.ConvertName(TypeTagPropertyName));
Format = JsonEncodedText.Encode(namingPolicy.ConvertName(FormatPropertyName));
Rendering = JsonEncodedText.Encode(namingPolicy.ConvertName(RenderingPropertyName));
}

private const string TimestampPropertyName = "Timestamp";
private const string LevelPropertyName = "Level";
private const string MessageTemplatePropertyName = "MessageTemplate";
private const string RenderedMessagePropertyName = "RenderedMessage";
private const string TraceIdPropertyName = "TraceId";
private const string SpanIdPropertyName = "SpanId";
private const string ExceptionPropertyName = "Exception";
private const string PropertiesPropertyName = "Properties";
private const string RenderingsPropertyName = "Renderings";
private const string NullPropertyName = "null";
private const string TypeTagPropertyName = "_typeTag";
private const string FormatPropertyName = "Format";
private const string RenderingPropertyName = "Rendering";

public JsonEncodedText Timestamp { get; }
public JsonEncodedText Level { get; }
public JsonEncodedText MessageTemplate { get; }
public JsonEncodedText RenderedMessage { get; }
public JsonEncodedText TraceId { get; }
public JsonEncodedText SpanId { get; }
public JsonEncodedText Exception { get; }
public JsonEncodedText Properties { get; }
public JsonEncodedText Renderings { get; }
public JsonEncodedText Null { get; }
public JsonEncodedText TypeTag { get; }
public JsonEncodedText Format { get; }
public JsonEncodedText Rendering { get; }
}
private const string TimestampPropertyName = "Timestamp";
private const string LevelPropertyName = "Level";
private const string MessageTemplatePropertyName = "MessageTemplate";
private const string RenderedMessagePropertyName = "RenderedMessage";
private const string TraceIdPropertyName = "TraceId";
private const string SpanIdPropertyName = "SpanId";
private const string ExceptionPropertyName = "Exception";
private const string PropertiesPropertyName = "Properties";
private const string RenderingsPropertyName = "Renderings";
private const string NullPropertyName = "null";
private const string TypeTagPropertyName = "_typeTag";
private const string FormatPropertyName = "Format";
private const string RenderingPropertyName = "Rendering";

public JsonEncodedText Timestamp { get; } = JsonEncodedText.Encode(namingPolicy.ConvertName(TimestampPropertyName));
public JsonEncodedText Level { get; } = JsonEncodedText.Encode(namingPolicy.ConvertName(LevelPropertyName));

public JsonEncodedText MessageTemplate { get; } =
JsonEncodedText.Encode(namingPolicy.ConvertName(MessageTemplatePropertyName));

public JsonEncodedText RenderedMessage { get; } =
JsonEncodedText.Encode(namingPolicy.ConvertName(RenderedMessagePropertyName));

public JsonEncodedText TraceId { get; } = JsonEncodedText.Encode(namingPolicy.ConvertName(TraceIdPropertyName));
public JsonEncodedText SpanId { get; } = JsonEncodedText.Encode(namingPolicy.ConvertName(SpanIdPropertyName));
public JsonEncodedText Exception { get; } = JsonEncodedText.Encode(namingPolicy.ConvertName(ExceptionPropertyName));

public JsonEncodedText Properties { get; } =
JsonEncodedText.Encode(namingPolicy.ConvertName(PropertiesPropertyName));

public JsonEncodedText Renderings { get; } =
JsonEncodedText.Encode(namingPolicy.ConvertName(RenderingsPropertyName));

public JsonEncodedText Null { get; } = JsonEncodedText.Encode(namingPolicy.ConvertName(NullPropertyName));
public JsonEncodedText TypeTag { get; } = JsonEncodedText.Encode(namingPolicy.ConvertName(TypeTagPropertyName));
public JsonEncodedText Format { get; } = JsonEncodedText.Encode(namingPolicy.ConvertName(FormatPropertyName));
public JsonEncodedText Rendering { get; } = JsonEncodedText.Encode(namingPolicy.ConvertName(RenderingPropertyName));
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
</PropertyGroup>
<PropertyGroup>
<IsAotCompatible Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net7.0'))">true</IsAotCompatible>
<IsTrimmable>true</IsTrimmable>
<IsTrimmable Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net6.0'))">true</IsTrimmable>
<InvariantGlobalization>true</InvariantGlobalization>
</PropertyGroup>
<ItemGroup>
Expand All @@ -28,6 +28,10 @@
<PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All"/>
</ItemGroup>
<ItemGroup>
<PackageReference Include="PolySharp">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Serilog"/>
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
Expand Down
Loading