# 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 additional size-triggered rollover
#   - Default retention budget is capped at 10 MB per sink
#   - 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 PCodeWebHostBootstrap
  # Detection logic:
  #   1. Container environment → JSONL to stdout
  #   2. Non-container environment → File only
  # Notice logs reuse the same rolling budget while keeping Warning+ filtering.
  FileRolling:
    FileSizeLimitBytes: 1048576
    RetainedDataLimitBytes: 10485760

# 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"
