Добавление логирования в файл
This commit is contained in:
35
main.go
35
main.go
@@ -21,6 +21,7 @@ package main
|
||||
import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"io"
|
||||
"net/http"
|
||||
"os"
|
||||
"path/filepath"
|
||||
@@ -37,12 +38,15 @@ import (
|
||||
"gitea.plemya-x.ru/Plemya-x/ALR-updater/internal/builtins"
|
||||
"gitea.plemya-x.ru/Plemya-x/ALR-updater/internal/config"
|
||||
"gitea.plemya-x.ru/Plemya-x/ALR-updater/internal/generator"
|
||||
filelogger "gitea.plemya-x.ru/Plemya-x/ALR-updater/internal/logger"
|
||||
"go.etcd.io/bbolt"
|
||||
"go.starlark.net/starlark"
|
||||
"golang.org/x/crypto/bcrypt"
|
||||
"golang.org/x/term"
|
||||
)
|
||||
|
||||
var fileWriter *filelogger.RotatingFileWriter
|
||||
|
||||
func init() {
|
||||
log.Logger = logger.NewPretty(os.Stderr)
|
||||
}
|
||||
@@ -143,6 +147,37 @@ func main() {
|
||||
fl.Close()
|
||||
}
|
||||
|
||||
// Настройка логирования в файл
|
||||
if cfg.Logging.EnableFile {
|
||||
logFile := cfg.Logging.LogFile
|
||||
if logFile == "" {
|
||||
logFile = "/var/log/alr-updater.log"
|
||||
}
|
||||
|
||||
maxSize := cfg.Logging.MaxSize
|
||||
if maxSize == 0 {
|
||||
maxSize = 100 * 1024 * 1024 // 100 MB по умолчанию
|
||||
}
|
||||
|
||||
var err error
|
||||
fileWriter, err = filelogger.NewRotatingFileWriter(logFile, maxSize)
|
||||
if err != nil {
|
||||
log.Error("Failed to create file logger, continuing with stderr only").Err(err).Send()
|
||||
} else {
|
||||
// Создаем MultiWriter для вывода в stderr и файл одновременно
|
||||
multiWriter := filelogger.NewMultiWriter(os.Stderr, fileWriter)
|
||||
log.Logger = logger.NewPretty(multiWriter)
|
||||
log.Info("File logging enabled").Str("file", logFile).Int64("maxSize", maxSize).Send()
|
||||
|
||||
// Закрываем файл при завершении
|
||||
defer func() {
|
||||
if fileWriter != nil {
|
||||
fileWriter.Close()
|
||||
}
|
||||
}()
|
||||
}
|
||||
}
|
||||
|
||||
// Обработка генерации плагинов
|
||||
if *generatePlugins {
|
||||
log.Info("Starting automatic plugin generation...")
|
||||
|
Reference in New Issue
Block a user