# Environment Variables Configure LogWisp through environment variables for containerized deployments. ## Naming Convention - **Prefix**: `LOGWISP_` - **Path separator**: `_` (underscore) - **Array indices**: Numeric suffix (0-based) - **Case**: UPPERCASE Examples: - `logging.level` → `LOGWISP_LOGGING_LEVEL` - `pipelines[0].name` → `LOGWISP_PIPELINES_0_NAME` ## General Variables ### `LOGWISP_CONFIG_FILE` Configuration file path. ```bash export LOGWISP_CONFIG_FILE=/etc/logwisp/config.toml ``` ### `LOGWISP_CONFIG_DIR` Configuration directory. ```bash export LOGWISP_CONFIG_DIR=/etc/logwisp export LOGWISP_CONFIG_FILE=production.toml ``` ### `LOGWISP_DISABLE_STATUS_REPORTER` Disable periodic status reporting. ```bash export LOGWISP_DISABLE_STATUS_REPORTER=1 ``` ## Logging Variables ```bash # Output mode LOGWISP_LOGGING_OUTPUT=both # Log level LOGWISP_LOGGING_LEVEL=debug # File logging LOGWISP_LOGGING_FILE_DIRECTORY=/var/log/logwisp LOGWISP_LOGGING_FILE_NAME=logwisp LOGWISP_LOGGING_FILE_MAX_SIZE_MB=100 LOGWISP_LOGGING_FILE_RETENTION_HOURS=168 # Console logging LOGWISP_LOGGING_CONSOLE_TARGET=stderr LOGWISP_LOGGING_CONSOLE_FORMAT=json ``` ## Pipeline Configuration ### Basic Pipeline ```bash # Pipeline name LOGWISP_PIPELINES_0_NAME=app # Source configuration LOGWISP_PIPELINES_0_SOURCES_0_TYPE=directory LOGWISP_PIPELINES_0_SOURCES_0_OPTIONS_PATH=/var/log/app LOGWISP_PIPELINES_0_SOURCES_0_OPTIONS_PATTERN="*.log" LOGWISP_PIPELINES_0_SOURCES_0_OPTIONS_CHECK_INTERVAL_MS=100 # Sink configuration LOGWISP_PIPELINES_0_SINKS_0_TYPE=http LOGWISP_PIPELINES_0_SINKS_0_OPTIONS_PORT=8080 LOGWISP_PIPELINES_0_SINKS_0_OPTIONS_BUFFER_SIZE=1000 ``` ### Filters ```bash # Include filter LOGWISP_PIPELINES_0_FILTERS_0_TYPE=include LOGWISP_PIPELINES_0_FILTERS_0_LOGIC=or LOGWISP_PIPELINES_0_FILTERS_0_PATTERNS='["ERROR","WARN"]' # Exclude filter LOGWISP_PIPELINES_0_FILTERS_1_TYPE=exclude LOGWISP_PIPELINES_0_FILTERS_1_PATTERNS='["DEBUG"]' ``` ### HTTP Sink Options ```bash # Basic LOGWISP_PIPELINES_0_SINKS_0_OPTIONS_STREAM_PATH=/stream LOGWISP_PIPELINES_0_SINKS_0_OPTIONS_STATUS_PATH=/status # Heartbeat LOGWISP_PIPELINES_0_SINKS_0_OPTIONS_HEARTBEAT_ENABLED=true LOGWISP_PIPELINES_0_SINKS_0_OPTIONS_HEARTBEAT_INTERVAL_SECONDS=30 LOGWISP_PIPELINES_0_SINKS_0_OPTIONS_HEARTBEAT_FORMAT=comment # Rate Limiting LOGWISP_PIPELINES_0_SINKS_0_OPTIONS_RATE_LIMIT_ENABLED=true LOGWISP_PIPELINES_0_SINKS_0_OPTIONS_RATE_LIMIT_REQUESTS_PER_SECOND=10.0 LOGWISP_PIPELINES_0_SINKS_0_OPTIONS_RATE_LIMIT_BURST_SIZE=20 LOGWISP_PIPELINES_0_SINKS_0_OPTIONS_RATE_LIMIT_LIMIT_BY=ip ``` ## Example ```bash #!/bin/bash # Logging export LOGWISP_LOGGING_OUTPUT=both export LOGWISP_LOGGING_LEVEL=info # Pipeline 0: Application logs export LOGWISP_PIPELINES_0_NAME=app export LOGWISP_PIPELINES_0_SOURCES_0_TYPE=directory export LOGWISP_PIPELINES_0_SOURCES_0_OPTIONS_PATH=/var/log/myapp export LOGWISP_PIPELINES_0_SOURCES_0_OPTIONS_PATTERN="*.log" # Filters export LOGWISP_PIPELINES_0_FILTERS_0_TYPE=include export LOGWISP_PIPELINES_0_FILTERS_0_PATTERNS='["ERROR","WARN"]' # HTTP sink export LOGWISP_PIPELINES_0_SINKS_0_TYPE=http export LOGWISP_PIPELINES_0_SINKS_0_OPTIONS_PORT=8080 export LOGWISP_PIPELINES_0_SINKS_0_OPTIONS_RATE_LIMIT_ENABLED=true export LOGWISP_PIPELINES_0_SINKS_0_OPTIONS_RATE_LIMIT_REQUESTS_PER_SECOND=25.0 # Pipeline 1: System logs export LOGWISP_PIPELINES_1_NAME=system export LOGWISP_PIPELINES_1_SOURCES_0_TYPE=file export LOGWISP_PIPELINES_1_SOURCES_0_OPTIONS_PATH=/var/log/syslog # TCP sink export LOGWISP_PIPELINES_1_SINKS_0_TYPE=tcp export LOGWISP_PIPELINES_1_SINKS_0_OPTIONS_PORT=9090 logwisp ``` ## Precedence 1. Command-line flags (highest) 2. Environment variables 3. Configuration file 4. Defaults (lowest)