42 lines
1.5 KiB
Go
42 lines
1.5 KiB
Go
// Package logger реализует хранение данных GPIO: разбор байта, бинарные
|
||
// почасовые логи с ротацией, человекочитаемые и событийные логи, watchdog
|
||
// тишины и retention (автоочистку старых файлов). Пути хранения зависят от
|
||
// режима работы (deb-пакет или разработка) и вычисляются в paths.go.
|
||
package logger
|
||
|
||
import "time"
|
||
|
||
// Config содержит настройки для всех компонентов логирования
|
||
type Config struct {
|
||
// Retention настройки
|
||
RetentionHours int
|
||
RetentionMB int
|
||
RetentionIntervalMin time.Duration
|
||
|
||
// Мониторинг тишины
|
||
Silence5Min time.Duration
|
||
Silence10Min time.Duration
|
||
WatchdogIntervalMin time.Duration
|
||
|
||
// Анти-спам и интервалы
|
||
AlertCooldownSec time.Duration
|
||
HumanLogIntervalSec time.Duration
|
||
|
||
// Буфер
|
||
BufferSize int
|
||
}
|
||
|
||
// DefaultConfig возвращает конфигурацию по умолчанию
|
||
func DefaultConfig() *Config {
|
||
return &Config{
|
||
RetentionHours: 48,
|
||
RetentionMB: 5000,
|
||
RetentionIntervalMin: 15 * time.Minute,
|
||
Silence5Min: 5 * time.Minute,
|
||
Silence10Min: 10 * time.Minute,
|
||
WatchdogIntervalMin: 1 * time.Minute,
|
||
AlertCooldownSec: 10 * time.Second,
|
||
HumanLogIntervalSec: 5 * time.Second,
|
||
BufferSize: 10240,
|
||
}
|
||
} |