Skip to content

Commit 8d1d134

Browse files
committed
feat: add support for .net 8 and 9
1 parent c31c164 commit 8d1d134

31 files changed

+330
-239
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ jobs:
1010
timeout-minutes: 15
1111
strategy:
1212
matrix:
13-
dotnet-version: [ '5.0.x', '6.0.x' ]
13+
dotnet-version: [ '8.0.x', '9.0.x' ]
1414
steps:
1515
- name: Checkout
1616
uses: actions/checkout@v3

README.md

Lines changed: 27 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,7 @@ This is the .Net Honeybadger Notifier.
44

55
## Supported .Net versions:
66

7-
| Family | Version |
8-
|----------------|----------|
9-
| .Net | 5.0, 6.0 |
10-
| .Net Standard | 2.0, 2.1 |
11-
| .Net Core | 3.0, 3.1 |
12-
| .Net Framework | 4.6.1 |
7+
All modern .Net Core applications are supported, up to .Net 9.0.
138

149
## Getting Started
1510

@@ -22,7 +17,7 @@ dotnet add package Honeybadger.DotNetCore
2217
2. Register the _Honeybadger Middleware_:
2318
```c#
2419
var builder = WebApplication.CreateBuilder(args);
25-
builder.Services.AddHoneybadger();
20+
builder.AddHoneybadger();
2621
```
2722

2823
You can get access to the _Honeybadger Client_ using _DI_:
@@ -47,43 +42,41 @@ See example project in `examples/Honeybadger.DotNetCoreWebApp`.
4742
### As a custom logging provider
4843

4944
1. Install Honeybadger.Extensions.Logging from Nuget
50-
```
51-
dotnet add package Honeybadger.Extensions.Logging
52-
```
45+
```
46+
dotnet add package Honeybadger.Extensions.Logging
47+
```
5348
2. Register the custom logging provider:
54-
```c#
55-
var builder = WebApplication.CreateBuilder(args);
56-
builder.Logging.AddHoneybadger();
57-
```
49+
```c#
50+
var builder = WebApplication.CreateBuilder(args);
51+
builder.Logging.AddHoneybadger();
52+
```
5853
3. Errors from the `logger` will be reported to Honeybadger:
59-
```c#
60-
app.MapGet("/notify", ([FromServices] ILogger logger) =>
61-
{
62-
logger.LogError("hello from Honeybadger.Logger!");
63-
64-
return "Log reported to Honeybadger. Check your dashboard!";
65-
});
66-
```
54+
```c#
55+
app.MapGet("/notify", ([FromServices] ILogger logger) =>
56+
{
57+
logger.LogError("hello from Honeybadger.Logger!");
58+
59+
return "Log reported to Honeybadger. Check your dashboard!";
60+
});
61+
```
6762

6863
See example project in `examples/Honeybadger.DotNetCoreWebApp.Logger`.
6964

7065
### Using the SDK manually
7166

7267
1. Install the [Honeybadger Nuget](https://www.nuget.org/packages/Honeybadger).
73-
```
74-
dotnet add package Honeybadger
75-
```
68+
```
69+
dotnet add package Honeybadger
70+
```
7671
2. Initialize the _Honeybadger Client_:
77-
```c#
78-
var client = HoneybadgerSdk.Init(new HoneybadgerOptions("apiKey")
79-
{
80-
AppEnvironment = "development"
81-
});
82-
```
72+
```c#
73+
var options = new HoneybadgerOptions("apiKey");
74+
var client = new HoneybadgerClient(Options.Create(options));
75+
```
8376
3. Call `notify` to report to Honeybadger:
84-
```c#
85-
client.Notify("hello from .Net !");
86-
```
77+
```c#
78+
client.Notify("hello from .Net !");
79+
```
8780

8881
See example project in `examples/Honeybadger.Console`.
8982

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

33
<PropertyGroup>
44
<OutputType>Exe</OutputType>
5-
<TargetFramework>net6.0</TargetFramework>
5+
<TargetFramework>net9.0</TargetFramework>
66
<ImplicitUsings>enable</ImplicitUsings>
77
<Nullable>enable</Nullable>
88
</PropertyGroup>
@@ -12,7 +12,17 @@
1212
</ItemGroup>
1313

1414
<ItemGroup>
15-
<PackageReference Include="Microsoft.Extensions.Logging" Version="6.0.0" />
15+
<PackageReference Include="Microsoft.Extensions.Configuration" Version="9.0.1" />
16+
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="9.0.1" />
17+
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="9.0.1" />
18+
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="9.0.1" />
19+
<PackageReference Include="Microsoft.Extensions.Options" Version="9.0.1" />
20+
</ItemGroup>
21+
22+
<ItemGroup>
23+
<None Update="appsettings.json">
24+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
25+
</None>
1626
</ItemGroup>
1727

1828
</Project>
Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,19 @@
1-
// See https://aka.ms/new-console-template for more information
1+
using Honeybadger;
2+
using Microsoft.Extensions.Configuration;
3+
using Microsoft.Extensions.Options;
24

3-
using Honeybadger;
5+
var builder = new ConfigurationBuilder();
6+
var baseDir = Directory.GetCurrentDirectory();
7+
var configuration = builder
8+
.SetBasePath(baseDir)
9+
.AddJsonFile("appsettings.json", false, false)
10+
.Build();
411

5-
Console.WriteLine("Hello, World!");
12+
var options = new HoneybadgerOptions();
13+
configuration
14+
.GetSection("Honeybadger")
15+
.Bind(options);
616

7-
var client = HoneybadgerSdk.Init(new HoneybadgerOptions("YOUR_HONEYBADGER_API_KEY")
8-
{
9-
AppEnvironment = "development"
10-
});
11-
12-
client.Notify("hello from .Net !");
17+
var client = new HoneybadgerClient(Options.Create(options));
18+
client.Notify("hello from .Net !");
19+
Console.WriteLine("Done. Check your Honeybadger dashboard for the error.");
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"Logging": {
3+
"LogLevel": {
4+
"Default": "Debug",
5+
"System": "Information",
6+
"Microsoft": "Information"
7+
}
8+
},
9+
"Honeybadger": {
10+
"ApiKey": "your_api_key",
11+
"AppEnvironment": "development",
12+
"ReportData": true
13+
}
14+
}
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
<Project Sdk="Microsoft.NET.Sdk.Web">
22

33
<PropertyGroup>
4-
<TargetFramework>net6.0</TargetFramework>
4+
<TargetFramework>net9.0</TargetFramework>
55
<Nullable>enable</Nullable>
66
<ImplicitUsings>enable</ImplicitUsings>
77
</PropertyGroup>
88

99
<ItemGroup>
1010
<ProjectReference Include="..\..\src\Honeybadger.Extensions.Logging\Honeybadger.Extensions.Logging.csproj" />
11+
<ProjectReference Include="..\..\src\Honeybadger.DotNetCore\Honeybadger.DotNetCore.csproj" />
12+
<ProjectReference Include="..\..\src\Honeybadger\Honeybadger.csproj" />
1113
</ItemGroup>
1214

1315
</Project>

examples/Honeybadger.DotNetCoreWebApp.Logger/Program.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,13 @@
66
var app = builder.Build();
77

88
app.MapGet("/", () => "Hello World!");
9-
app.MapGet("/notify", ([FromServices] ILogger logger) =>
9+
app.MapGet("/notify", ([FromServices] ILogger<Program> logger) =>
1010
{
1111
logger.LogError("hello from Honeybadger.Logger!");
1212

1313
return "Log reported to Honeybadger. Check your dashboard!";
1414
});
1515

16-
app.Run();
16+
app.Run();
17+
18+
public partial class Program {}

examples/Honeybadger.DotNetCoreWebApp.Logger/appsettings.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,11 @@
33
"LogLevel": {
44
"Default": "Information",
55
"Microsoft.AspNetCore": "Warning"
6+
},
7+
"Honeybadger": {
8+
"ApiKey": "your_api_key",
9+
"AppEnvironment": "development",
10+
"ReportData": true
611
}
712
},
813
"AllowedHosts": "*"

examples/Honeybadger.DotNetCoreWebApp/Honeybadger.DotNetCoreWebApp.csproj

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

33
<PropertyGroup>
4-
<TargetFramework>net6.0</TargetFramework>
4+
<TargetFramework>net9.0</TargetFramework>
55
<Nullable>enable</Nullable>
66
<ImplicitUsings>enable</ImplicitUsings>
77
</PropertyGroup>

examples/Honeybadger.DotNetCoreWebApp/Program.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,7 @@
33
using Microsoft.AspNetCore.Mvc;
44

55
var builder = WebApplication.CreateBuilder(args);
6-
builder.Services.AddHoneybadger(new HoneybadgerOptions("YOUR_HONEYBADGER_API_KEY")
7-
{
8-
AppEnvironment = "development"
9-
});
6+
builder.AddHoneybadger();
107

118
var app = builder.Build();
129
app.MapGet("/", ([FromServices] IHoneybadgerClient client) =>

0 commit comments

Comments
 (0)