docs(runtime-logs): implement runtime log management features
Добавлены новые возможности для работы с файловыми логами Docker-сервисов: - Эндпоинты для получения списка логов и хвоста лог-файла. - Очистка лог-файлов с возможностью выбора режима (truncate или delete) и запись в аудит очистки. - Обновлена документация и конфигурация для поддержки новых функций. Co-authored-by: Cursor <[email protected]>
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
package runtimelogs
|
||||
|
||||
import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// Config holds runtime log filesystem settings.
|
||||
type Config struct {
|
||||
// RootDir is the absolute path to runtime log files (empty disables FS API).
|
||||
RootDir string
|
||||
// ServiceName is EVOBGP_SERVICE (must be evobgp-all when set).
|
||||
ServiceName string
|
||||
}
|
||||
|
||||
// ConfigFromEnv builds Config from EVOBGP_RUNTIME_LOGS_DIR and EVOBGP_SERVICE.
|
||||
func ConfigFromEnv() Config {
|
||||
root := strings.TrimSpace(os.Getenv("EVOBGP_RUNTIME_LOGS_DIR"))
|
||||
if root != "" {
|
||||
if abs, err := filepath.Abs(root); err == nil {
|
||||
root = abs
|
||||
}
|
||||
}
|
||||
svc := strings.TrimSpace(os.Getenv("EVOBGP_SERVICE"))
|
||||
return Config{RootDir: root, ServiceName: svc}
|
||||
}
|
||||
|
||||
// Enabled reports whether runtime log FS operations are allowed in this process.
|
||||
func (c Config) Enabled() bool {
|
||||
if c.RootDir == "" || c.ServiceName != ServiceNameAll {
|
||||
return false
|
||||
}
|
||||
st, err := os.Stat(c.RootDir)
|
||||
return err == nil && st.IsDir()
|
||||
}
|
||||
Reference in New Issue
Block a user