MacroDeck.Plugin.Serilog 3.0.0-beta.12

This is a prerelease version of MacroDeck.Plugin.Serilog.
dotnet add package MacroDeck.Plugin.Serilog --version 3.0.0-beta.12
                    
NuGet\Install-Package MacroDeck.Plugin.Serilog -Version 3.0.0-beta.12
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="MacroDeck.Plugin.Serilog" Version="3.0.0-beta.12" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="MacroDeck.Plugin.Serilog" Version="3.0.0-beta.12" />
                    
Directory.Packages.props
<PackageReference Include="MacroDeck.Plugin.Serilog" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add MacroDeck.Plugin.Serilog --version 3.0.0-beta.12
                    
#r "nuget: MacroDeck.Plugin.Serilog, 3.0.0-beta.12"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package MacroDeck.Plugin.Serilog@3.0.0-beta.12
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=MacroDeck.Plugin.Serilog&version=3.0.0-beta.12&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=MacroDeck.Plugin.Serilog&version=3.0.0-beta.12&prerelease
                    
Install as a Cake Tool

MacroDeck.Plugin.Serilog

Forwards a Macro Deck plugin's own logs to the host, so they show up next to the host's own entries in its log viewer - without changing how you log.

var plugin = MacroDeckPlugin.CreatePlugin(args)
    .UseMacroDeckLogging()
    .RegisterIntegration<MyIntegration>()
    .Build();

await plugin.RunAsync();

UseMacroDeckLogging calls Serilog's own UseSerilog under the hood, so an injected Serilog ILogger, the static Log APIs and MacroDeck.Sdk.Logging.IntegrationLog all route through it automatically. Configure the pipeline the normal way with the optional callback - it runs before the Macro Deck sink is attached, so every other Serilog feature still works:

.UseMacroDeckLogging(cfg => cfg
    .MinimumLevel.Debug()
    .Enrich.WithMachineName()
    .WriteTo.File("plugin.log"))

Calling UseMacroDeckLogging more than once is safe - the second call is a no-op.

Behaviour worth knowing

  • Warnings, errors and fatals are never dropped in favor of informational noise. Events queue on two separate bounded channels, one for Warning and above and one for everything else, so a flood of Information lines cannot push a queued Error out. Events are still shipped in the order they were logged - the split only decides what gets dropped under pressure, not what order the host sees things in.
  • Nothing here blocks the caller. A logger.Information(...) call always returns immediately, even fully disconnected from the host - excess events past the queue capacity are dropped, not buffered without bound and not waited on.
  • log.publish has no acknowledgement, matching the wire protocol's fire-and-forget contract for that message type. There is no retry queue and no replay: a batch the host never received is gone. What survives a lost connection is a small bounded local file (plugin-fallback.log under the plugin's state directory) as a diagnostic tail of what could not be delivered - it is never replayed into the host, so do not expect an outage's logs to reappear once the connection comes back.
  • Configure batching and the fallback file from the MacroDeck:Plugin:Logging configuration section, bound to MacroDeckLoggingOptions.

Licensed under Apache-2.0.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
3.0.0-beta.12 0 9/23/2026
3.0.0-beta.11 213 9/17/2026
3.0.0-beta.7 81 9/16/2026
3.0.0-beta.6 57 9/15/2026
3.0.0-beta.5 95 9/14/2026
3.0.0-beta.4 179 9/11/2026
3.0.0-beta.3 58 9/9/2026
3.0.0-beta.2 69 9/6/2026
3.0.0-beta.1 71 9/6/2026