more changes
This commit is contained in:
@ -64,18 +64,19 @@ func (m *multiLogger) Fatal(message string) {
|
||||
|
||||
// NewRuntimeFileLogger returns a logger that writes all output both to
|
||||
//
|
||||
// $XDG_CONFIG_HOME/FanslySync/logs/runtime_latest.log
|
||||
// $XDG_CONFIG_HOME/FanslySync/logs/runtime_latest.log (or OS equivalent)
|
||||
//
|
||||
// and to a timestamped file
|
||||
//
|
||||
// $XDG_CONFIG_HOME/FanslySync/logs/runtime_YYYY-MM-DD_HH-MM-SS.log
|
||||
// $XDG_CONFIG_HOME/FanslySync/logs/runtime_YYYY-MM-DD_HH-MM-SS.log (or OS equivalent)
|
||||
//
|
||||
// It also deletes any timestamped logs older than 14 days.
|
||||
//
|
||||
// The returned logger implements github.com/wailsapp/wails/v2/pkg/logger.Logger
|
||||
// and will be used by Wails for all Go-side logging.
|
||||
func NewRuntimeFileLogger() (logger.Logger, error) {
|
||||
// 1) Ensure log directory exists
|
||||
// Make sure the log directory exists
|
||||
// We use $XDG_CONFIG_HOME/FanslySync/logs/runtime_latest.log or OS equivalent for $XDG_CONFIG_HOME
|
||||
cfgDir, err := os.UserConfigDir()
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("cannot determine user config dir: %w", err)
|
||||
@ -85,7 +86,8 @@ func NewRuntimeFileLogger() (logger.Logger, error) {
|
||||
return nil, fmt.Errorf("cannot create log directory: %w", err)
|
||||
}
|
||||
|
||||
// 2) Prune old timestamped logs (>14 days)
|
||||
// Prune old logs
|
||||
// We keep logs for 14 days, so delete any logs older than that
|
||||
cutoff := time.Now().Add(-14 * 24 * time.Hour)
|
||||
entries, _ := os.ReadDir(logDir)
|
||||
for _, e := range entries {
|
||||
@ -101,17 +103,17 @@ func NewRuntimeFileLogger() (logger.Logger, error) {
|
||||
}
|
||||
}
|
||||
|
||||
// 3) Build paths for timestamped + latest
|
||||
ts := time.Now().Format("2006-01-02_15-04-05")
|
||||
tsPath := filepath.Join(logDir, fmt.Sprintf("runtime_%s.log", ts))
|
||||
latestPath := filepath.Join(logDir, "runtime_latest.log")
|
||||
|
||||
// 4) Create both loggers
|
||||
// Create loggers to attach to the multiLogger
|
||||
tsLogger := logger.NewFileLogger(tsPath)
|
||||
latestLogger := logger.NewFileLogger(latestPath)
|
||||
termLogger := logger.NewDefaultLogger()
|
||||
|
||||
// 5) Fan-out into a multiLogger
|
||||
// Spread into a multiLogger
|
||||
// This will fan out all log messages to all three loggers
|
||||
multi := &multiLogger{
|
||||
targets: []logger.Logger{tsLogger, latestLogger, termLogger},
|
||||
}
|
||||
|
@ -2,7 +2,6 @@ package utils
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/wailsapp/wails/v2/pkg/runtime"
|
||||
)
|
||||
|
||||
|
Reference in New Issue
Block a user