Skip to main content

Structured Logging with Seq

Synentra can stream structured logs directly to Seq, providing centralized log storage, powerful search capabilities, dashboards, and diagnostics.

Seq is recommended for development, staging, and production environments where multiple Synentra instances need to be monitored.

Overview

Using Seq allows you to:

  • Collect logs from multiple Synentra instances
  • Search structured properties
  • Diagnose failures quickly
  • Filter by log level
  • Create dashboards
  • Configure alerts

Prerequisites

  • Docker (recommended)
  • A running Seq instance

Start Seq

Create a docker-compose.yml file.

services:
seq:
image: datalust/seq:latest
container_name: synentra-seq
environment:
ACCEPT_EULA: "Y"
SEQ_FIRSTRUN_ADMINPASSWORD: "ChangeMe123!"
ports:
- "8081:80"
- "5341:5341"
volumes:
- seq-data:/data
networks:
- synentra-network

synentra:
image: ghcr.io/synentra/synentra:latest
container_name: synentra
ports:
- "7080:7080"
volumes:
- ./appsettings.json:/app/appsettings.json:ro
depends_on:
- seq
networks:
- synentra-network

networks:
synentra-network:
driver: bridge

volumes:
seq-data:

Start Seq.

docker compose up -d

Open Seq:

http://localhost:5341

Configure Synentra

Enable Seq logging.

{
"Observability": {
"Logging": {
"Seq": {
"Enabled": true,
"Url": "http://localhost:5341",
"ApiKey": "",
"LogLevel": "Information"
}
}
}
}

Configuration Options

OptionDescription
EnabledEnables Seq logging.
UrlURL of the Seq server.
ApiKeyOptional API key when authentication is enabled.
LogLevelMinimum log level sent to Seq.

Example Configuration

{
"Observability": {
"Logging": {
"Seq": {
"Enabled": true,
"Url": "http://seq.company.internal",
"ApiKey": "your-api-key",
"LogLevel": "Information"
}
}
}
}

Viewing Logs

Open the Seq web interface.

http://localhost:8081

New log events appear automatically as Synentra runs.


Example Structured Event

A typical event contains structured properties similar to:

{
"@t":"2026-07-07T20:39:12.7502255Z",
"@mt":"Now listening on: {address}",
"@m":"Now listening on: http://[::]:7080",
"@i":"06c3fe8d",
"EnvironmentUserName":"f4e4ab4a92d6\\root",
"EventId":{
"Id":14,
"Name":"ListeningOnAddress"
},
"MachineName":"f4e4ab4a92d6",
"SourceContext":"Microsoft.Hosting.Lifetime",
"ThreadId":1,
"address":"http://[::]:7080"
}

Because the properties are structured, they can be queried individually.


Useful Queries

Errors

@Level = 'Error'

Warnings

@Level = 'Warning'

Requests for Machine Name

MachineName = 'f4e4ab4a92d6'

EnvironmentLog Level
DevelopmentDebug
TestingInformation
ProductionInformation or Warning

Troubleshooting

No events appear in Seq

Verify:

  • Seq is running.
  • The configured URL is correct.
  • Firewalls allow access.
  • API keys are valid if authentication is enabled.

Connection Issues

Verify connectivity.

curl http://localhost:5341

If the server responds, Synentra should be able to publish events.

Was this helpful?