# Production Serilog Configuration
# Logging behavior adapts automatically based on deployment environment:
#
# Container Deployments (Docker/Kubernetes):
#   - Logs are formatted as Compact JSON Lines for structured log aggregation
#   - Output goes to stdout (captured by Docker/Kubernetes logging drivers)
#   - Compatible with ELK, Loki, EFK, and other log aggregation systems
#   - No log files are created in the container
#
# Non-Container Deployments:
#   - Logs are written ONLY to rolling files in logs/ directory
#   - NO console output to reduce noise in production
#   - Hourly rotation with 7-day retention (168 files)
#   - Automatic cleanup of old log files
Serilog:
  # Production log level - Information for normal operations
  # Change to Warning for reduced logging volume
  MinimumLevel:
    Default: Information

    # Namespace-specific overrides for production
    Override:
      Microsoft.EntityFrameworkCore: Warning
      Microsoft: Warning
      Orleans: Warning
      System: Warning
      Volo: Warning

  # Note: Sink configuration is handled programmatically in Program.cs
  # Detection logic:
  #   1. Container environment → JSONL to stdout
  #   2. Non-container environment → File only
  #
  # To override log retention for non-container deployments:
  # Edit Program.cs: retainedFileCountLimit parameter
  #   - 168 files = 7 days (default)
  #   - 336 files = 14 days
  #   - 720 files = 30 days

# Production entitlement configuration
SessionConcurrency:
  DefaultMaxConcurrentSessions: 3

License:
  SteamDlc:
    HasBaseEntitlement: true
    BaseEditionName: "standard"
    HasAnnualDlcEntitlement: false
    AnnualDlcName: "annual-license"
    AnnualDlcIdentifier: ""
    AnnualDlcExpiresAtUtc: null
    AnnualDlcMaxConcurrentSessions: 10

Dlc:
  RootDirectory: "./dlcs"
