v0.3.11 doc update
This commit is contained in:
16
doc/cli.md
16
doc/cli.md
@ -35,6 +35,19 @@ Suppress all output (overrides logging configuration) except sinks.
|
||||
Disable periodic status reporting.
|
||||
- **Example**: `logwisp --disable-status-reporter`
|
||||
|
||||
### `--config-auto-reload`
|
||||
Enable automatic configuration reloading on file changes.
|
||||
- **Example**: `logwisp --config-auto-reload --config /etc/logwisp/config.toml`
|
||||
- Monitors configuration file for changes
|
||||
- Reloads pipelines without restart
|
||||
- Preserves connections during reload
|
||||
|
||||
### `--config-save-on-exit`
|
||||
Save current configuration to file on exit.
|
||||
- **Example**: `logwisp --config-save-on-exit`
|
||||
- Useful with runtime modifications
|
||||
- Requires valid config file path
|
||||
|
||||
## Logging Options
|
||||
|
||||
Override configuration file settings:
|
||||
@ -172,9 +185,12 @@ logwisp --pipelines.0.name filtered \
|
||||
- `0`: Success
|
||||
- `1`: General error
|
||||
- `2`: Configuration file not found
|
||||
- `137`: SIGKILL received
|
||||
|
||||
## Signals
|
||||
|
||||
- `SIGINT` (Ctrl+C): Graceful shutdown
|
||||
- `SIGTERM`: Graceful shutdown
|
||||
- `SIGHUP`: Reload configuration (when auto-reload enabled)
|
||||
- `SIGUSR1`: Reload configuration (when auto-reload enabled)
|
||||
- `SIGKILL`: Immediate shutdown (exit code 137)
|
||||
@ -20,6 +20,8 @@ LogWisp supports three configuration methods with the following precedence:
|
||||
| Show version | `--version` | `LOGWISP_VERSION` | `version = true` |
|
||||
| Quiet mode | `--quiet` | `LOGWISP_QUIET` | `quiet = true` |
|
||||
| Disable status reporter | `--disable-status-reporter` | `LOGWISP_DISABLE_STATUS_REPORTER` | `disable_status_reporter = true` |
|
||||
| Config auto-reload | `--config-auto-reload` | `LOGWISP_CONFIG_AUTO_RELOAD` | `config_auto_reload = true` |
|
||||
| Config save on exit | `--config-save-on-exit` | `LOGWISP_CONFIG_SAVE_ON_EXIT` | `config_save_on_exit = true` |
|
||||
| Config file | `--config <path>` | `LOGWISP_CONFIG_FILE` | N/A |
|
||||
| Config directory | N/A | `LOGWISP_CONFIG_DIR` | N/A |
|
||||
| **Logging** |
|
||||
@ -52,6 +54,29 @@ Note: `N` represents array indices (0-based).
|
||||
3. User config: `~/.config/logwisp/logwisp.toml`
|
||||
4. Current directory: `./logwisp.toml`
|
||||
|
||||
## Hot Reload
|
||||
|
||||
LogWisp supports automatic configuration reloading without restart:
|
||||
|
||||
```bash
|
||||
# Enable hot reload
|
||||
logwisp --config-auto-reload --config /etc/logwisp/config.toml
|
||||
|
||||
# Manual reload via signal
|
||||
kill -HUP $(pidof logwisp) # or SIGUSR1
|
||||
```
|
||||
|
||||
Hot reload updates:
|
||||
- Pipeline configurations
|
||||
- Filters
|
||||
- Formatters
|
||||
- Rate limits
|
||||
- Router mode changes
|
||||
|
||||
Not reloaded (requires restart):
|
||||
- Logging configuration
|
||||
- Background mode
|
||||
|
||||
## Configuration Structure
|
||||
|
||||
```toml
|
||||
@ -107,6 +132,28 @@ options = { ... }
|
||||
|
||||
Each `[[pipelines]]` section defines an independent processing pipeline.
|
||||
|
||||
### Pipeline Formatters
|
||||
|
||||
Control output format per pipeline:
|
||||
|
||||
```toml
|
||||
[[pipelines]]
|
||||
name = "json-output"
|
||||
format = "json" # raw, json, text
|
||||
|
||||
[pipelines.format_options]
|
||||
# JSON formatter
|
||||
pretty = false
|
||||
timestamp_field = "timestamp"
|
||||
level_field = "level"
|
||||
message_field = "message"
|
||||
source_field = "source"
|
||||
|
||||
# Text formatter
|
||||
template = "[{{.Timestamp | FmtTime}}] [{{.Level | ToUpper}}] {{.Message}}"
|
||||
timestamp_format = "2006-01-02T15:04:05Z07:00"
|
||||
```
|
||||
|
||||
### Sources
|
||||
|
||||
Input data sources:
|
||||
@ -320,6 +367,28 @@ type = "http"
|
||||
options = { port = 8080 }
|
||||
```
|
||||
|
||||
### Hot Reload with JSON Output
|
||||
|
||||
```toml
|
||||
config_auto_reload = true
|
||||
config_save_on_exit = true
|
||||
|
||||
[[pipelines]]
|
||||
name = "app"
|
||||
format = "json"
|
||||
|
||||
[pipelines.format_options]
|
||||
pretty = true
|
||||
|
||||
[[pipelines.sources]]
|
||||
type = "directory"
|
||||
options = { path = "/var/log/app", pattern = "*.log" }
|
||||
|
||||
[[pipelines.sinks]]
|
||||
type = "http"
|
||||
options = { port = 8080 }
|
||||
```
|
||||
|
||||
### Filtering
|
||||
|
||||
```toml
|
||||
|
||||
@ -15,6 +15,17 @@ Examples:
|
||||
|
||||
## General Variables
|
||||
|
||||
```bash
|
||||
LOGWISP_CONFIG_FILE=/etc/logwisp/config.toml
|
||||
LOGWISP_CONFIG_DIR=/etc/logwisp
|
||||
LOGWISP_ROUTER=true
|
||||
LOGWISP_BACKGROUND=true
|
||||
LOGWISP_QUIET=true
|
||||
LOGWISP_DISABLE_STATUS_REPORTER=true
|
||||
LOGWISP_CONFIG_AUTO_RELOAD=true
|
||||
LOGWISP_CONFIG_SAVE_ON_EXIT=true
|
||||
```
|
||||
|
||||
### `LOGWISP_CONFIG_FILE`
|
||||
Configuration file path.
|
||||
```bash
|
||||
@ -95,6 +106,19 @@ LOGWISP_PIPELINES_0_SINKS_0_OPTIONS_PORT=8080
|
||||
LOGWISP_PIPELINES_0_SINKS_0_OPTIONS_BUFFER_SIZE=1000
|
||||
```
|
||||
|
||||
### Pipeline with Formatter
|
||||
|
||||
```bash
|
||||
# Pipeline name and format
|
||||
LOGWISP_PIPELINES_0_NAME=app
|
||||
LOGWISP_PIPELINES_0_FORMAT=json
|
||||
|
||||
# Format options
|
||||
LOGWISP_PIPELINES_0_FORMAT_OPTIONS_PRETTY=true
|
||||
LOGWISP_PIPELINES_0_FORMAT_OPTIONS_TIMESTAMP_FIELD=ts
|
||||
LOGWISP_PIPELINES_0_FORMAT_OPTIONS_LEVEL_FIELD=severity
|
||||
```
|
||||
|
||||
### Filters
|
||||
```bash
|
||||
# Include filter
|
||||
|
||||
Reference in New Issue
Block a user