SignalYard logo SignalYard
Open source · MIT licensed · .NET 10

Structured logging for Azure,
self-hosted for cents.

SignalYard is a lightweight logging tool that runs in Azure App Service and stores everything in Azure Table Storage. Ship logs from .NET with a Serilog sink, then search, chart, and investigate them — with a UI or with AI.

Install the sink: dotnet add package Serilog.Sinks.SignalYard

SignalYard dashboard showing log volume over time, error and warning counts, and a per-application breakdown
Everything you need

A full logging stack, not a black box

You run it, you own the data. No per-seat pricing, no ingestion quotas — just your storage account.

Structured log viewer

Query and search structured logs by application, level, and time range in a fast, dark-themed UI.

Volume & trend dashboard

Log volume over time with error and warning counts, plus a breakdown across every application.

AI log investigation

A built-in MCP server lets Claude Code, VS Code, and other AI tools query logs across all apps.

Application management

Create and manage applications, each with its own ingestion API key and retention policy.

Secure by default

Entra ID authentication for the UI, per-application API keys for ingestion, a separate key for AI.

Auto-cleanup & low cost

Configurable retention automatically deletes old partitions. Azure Table Storage costs cents a month.

See it in action

Built for reading logs, not fighting them

Log viewer

Search and filter, then narrow client-side

Pick an application, choose a time range, filter by level, and scan color-coded entries grouped by day. A live filter box refines the results instantly — error, warning, info, debug, and fatal levels are all preserved.

SignalYard log viewer with color-coded log entries filtered by application and level
Applications

One place for every app and its keys

Register each service that ships logs, generate its sy_ ingestion key, set a retention window, and enable or disable it — all from a single management screen.

SignalYard applications management screen listing apps with API keys, status, and retention
Serilog.Sinks.SignalYard

Ship logs from .NET in three lines

The official Serilog sink formats events as CLEF, batches them durably, and posts them to your SignalYard server over HTTP. Message templates, structured properties, levels, and exceptions are all preserved.

  • 1
    Add the Serilog.Sinks.SignalYard NuGet package.
  • 2
    Point the sink at your server URL and paste your application's API key.
  • 3
    Log as you always do — events batch and flush automatically.

NuGet package →    Source & options →

Program.cs
using Serilog;

Log.Logger = new LoggerConfiguration()
    .WriteTo.SignalYard(
        serverUrl: "https://your-signalyard.azurewebsites.net",
        apiKey: "sy_your_api_key_here")
    .CreateLogger();

Log.Information(
    "User {Username} logged in from {IpAddress}",
    "john.doe", "10.0.0.1");

// flush buffered events on shutdown
Log.CloseAndFlush();
Model Context Protocol

Investigate logs with your AI tools

SignalYard exposes a read-only /mcp endpoint so Claude Code, VS Code, and other MCP clients can investigate logs across all your applications — gated by a single global investigator key, separate from your ingestion keys.

๐Ÿ”’ Read-only · one global key · disabled until you set it
list_applicationsList every application and its settings.
query_logsQuery entries for one or all apps over a time range.
get_log_statsAggregate counts by level, over time, and per app.

Own your logs. Spend cents.

SignalYard is free and open source under the MIT license. Deploy it to Azure App Service, point your apps at it, and start reading logs today.