Files
logwisp/README.md

82 lines
2.3 KiB
Markdown

<table>
<tr>
<td width="200" valign="middle">
<img src="asset/logwisp-logo.svg" alt="LogWisp Logo" width="200"/>
</td>
<td valign="middle">
<h1>LogWisp</h1>
<p>
<a href="https://golang.org"><img src="https://img.shields.io/badge/Go-1.24-00ADD8?style=flat&logo=go" alt="Go"></a>
<a href="https://opensource.org/licenses/BSD-3-Clause"><img src="https://img.shields.io/badge/License-BSD_3--Clause-blue.svg" alt="License"></a>
<a href="doc/"><img src="https://img.shields.io/badge/Docs-Available-green.svg" alt="Documentation"></a>
</p>
</td>
</tr>
</table>
**Multi-stream log monitoring with real-time streaming over HTTP/SSE and TCP**
LogWisp watches log files and streams updates to connected clients in real-time. Perfect for monitoring multiple applications, filtering noise, and centralizing log access.
## 🚀 Quick Start
```bash
# Install
go install github.com/yourusername/logwisp/src/cmd/logwisp@latest
# Run with defaults (monitors *.log in current directory)
logwisp
# Stream logs (from another terminal)
curl -N http://localhost:8080/stream
```
## ✨ Key Features
- **📡 Real-time Streaming** - SSE (HTTP) and TCP protocols
- **🔍 Pattern Filtering** - Include/exclude logs with regex patterns
- **🛡️ Rate Limiting** - Protect against abuse with configurable limits
- **📊 Multi-stream** - Monitor different log sources simultaneously
- **🔄 Rotation Aware** - Handles log rotation seamlessly
- **⚡ High Performance** - Minimal CPU/memory footprint
## 📖 Documentation
Complete documentation is available in the [`doc/`](doc/) directory:
- [**Quick Start Guide**](doc/quickstart.md) - Get running in 5 minutes
- [**Configuration**](doc/configuration.md) - All configuration options
- [**CLI Reference**](doc/cli.md) - Command-line interface
- [**Examples**](doc/examples/) - Ready-to-use configurations
## 💻 Basic Usage
### Monitor application logs with filtering:
```toml
# ~/.config/logwisp.toml
[[streams]]
name = "myapp"
[streams.monitor]
targets = [{ path = "/var/log/myapp", pattern = "*.log" }]
[[streams.filters]]
type = "include"
patterns = ["ERROR", "WARN", "CRITICAL"]
[streams.httpserver]
enabled = true
port = 8080
```
### Run multiple streams:
```bash
logwisp --router --config /etc/logwisp/multi-stream.toml
```
## 📄 License
BSD-3-Clause