# LogWisp Multi-Stream Configuration # Location: ~/.config/logwisp.toml # Global monitor defaults [monitor] check_interval_ms = 100 # Stream 1: Application logs (public access) [[streams]] name = "app" [streams.monitor] targets = [ { path = "/var/log/myapp", pattern = "*.log", is_file = false }, { path = "/var/log/myapp/app.log", pattern = "", is_file = true } ] [streams.httpserver] enabled = true port = 8080 buffer_size = 2000 stream_path = "/stream" status_path = "/status" [streams.httpserver.heartbeat] enabled = true interval_seconds = 30 format = "comment" # Stream 2: System logs (authenticated) [[streams]] name = "system" [streams.monitor] check_interval_ms = 50 # More frequent checks targets = [ { path = "/var/log", pattern = "syslog*", is_file = false }, { path = "/var/log/auth.log", pattern = "", is_file = true } ] [streams.httpserver] enabled = true port = 8443 buffer_size = 5000 stream_path = "/logs" status_path = "/health" # SSL placeholder [streams.httpserver.ssl] enabled = true cert_file = "/etc/logwisp/certs/server.crt" key_file = "/etc/logwisp/certs/server.key" min_version = "TLS1.2" # Authentication placeholder [streams.auth] type = "basic" [streams.auth.basic_auth] realm = "System Logs" users = [ { username = "admin", password_hash = "$2y$10$..." } ] ip_whitelist = ["10.0.0.0/8", "192.168.0.0/16"] # TCP server also available [streams.tcpserver] enabled = true port = 9443 buffer_size = 5000 [streams.tcpserver.heartbeat] enabled = false # Stream 3: Debug logs (high-volume, no heartbeat) [[streams]] name = "debug" [streams.monitor] targets = [ { path = "./debug", pattern = "*.debug", is_file = false } ] [streams.httpserver] enabled = true port = 8082 buffer_size = 10000 stream_path = "/stream" status_path = "/status" [streams.httpserver.heartbeat] enabled = false # Disable for high-volume # Rate limiting placeholder [streams.httpserver.rate_limit] enabled = true requests_per_second = 100.0 burst_size = 1000 limit_by = "ip" # Usage Examples: # # 1. Standard mode (each stream on its own port): # ./logwisp # - App logs: http://localhost:8080/stream # - System logs: https://localhost:8443/logs (with auth) # - Debug logs: http://localhost:8082/stream # # 2. Router mode (shared port with path routing): # ./logwisp --router # - App logs: http://localhost:8080/app/stream # - System logs: http://localhost:8080/system/logs # - Debug logs: http://localhost:8080/debug/stream # - Global status: http://localhost:8080/status # # 3. Override config file: # ./logwisp --config /etc/logwisp/production.toml # # 4. Environment variables: # LOGWISP_MONITOR_CHECK_INTERVAL_MS=50 # LOGWISP_STREAMS_0_HTTPSERVER_PORT=8090