From 087923a13f77fe6a4ecd89e62b964f9df08e837d Mon Sep 17 00:00:00 2001 From: Evan Burkey Date: Thu, 24 Jul 2025 06:21:56 -0700 Subject: [PATCH] more logging changes --- FyneApp.toml | 2 +- main.go | 3 +++ pkg/launcher/launcher.go | 2 +- pkg/launcher/recommended.go | 2 +- pkg/log/logging.go | 38 ++++++++++++++++++++++++++++++++----- 5 files changed, 39 insertions(+), 8 deletions(-) diff --git a/FyneApp.toml b/FyneApp.toml index 0136499..0a72c3d 100644 --- a/FyneApp.toml +++ b/FyneApp.toml @@ -3,4 +3,4 @@ Name = "EpochSilicon" ID = "com.burkey.epochsilicon" Version = "1.0.0" - Build = 3 + Build = 4 diff --git a/main.go b/main.go index 8307d9a..00f7433 100644 --- a/main.go +++ b/main.go @@ -13,6 +13,9 @@ import ( const appVersion = "1.0.1" func main() { + log.SetupLogging() + defer log.Close() + PEApp := app.NewWithID("com.burkey.epochsilicon") PEWindow := PEApp.NewWindow("EpochSilicon v" + appVersion) PEWindow.Resize(fyne.NewSize(650, 500)) diff --git a/pkg/launcher/launcher.go b/pkg/launcher/launcher.go index ea5711b..a2ed4bc 100644 --- a/pkg/launcher/launcher.go +++ b/pkg/launcher/launcher.go @@ -2,8 +2,8 @@ package launcher import ( "bufio" + "epochsilicon/pkg/log" "fmt" - "github.com/rs/zerolog/log" "os" "os/exec" "path/filepath" diff --git a/pkg/launcher/recommended.go b/pkg/launcher/recommended.go index be8a028..d2c8c47 100644 --- a/pkg/launcher/recommended.go +++ b/pkg/launcher/recommended.go @@ -1,8 +1,8 @@ package launcher import ( + "epochsilicon/pkg/log" "fmt" - "github.com/rs/zerolog/log" "os" "path/filepath" "regexp" diff --git a/pkg/log/logging.go b/pkg/log/logging.go index 6f9f2da..fa2b491 100644 --- a/pkg/log/logging.go +++ b/pkg/log/logging.go @@ -3,14 +3,42 @@ package log import ( "github.com/rs/zerolog" "os" + "path/filepath" ) -var logger zerolog.Logger +const ApplicationSupportDir = "/Library/Application Support/EpochSilicon" -func init() { - zerolog.TimeFieldFormat = zerolog.TimeFormatUnix - zerolog.SetGlobalLevel(zerolog.InfoLevel) - logger = zerolog.New(os.Stdout).With().Timestamp().Logger() +var ( + logger zerolog.Logger + logFilePointer *os.File + logFilePath = filepath.Join(ApplicationSupportDir, "EpochSilicon.log") +) + +func SetupLogging() { + logFilePointer = nil + ToConsole(zerolog.InfoLevel) +} + +func Close() { + if logFilePointer != nil { + logFilePointer.Close() + } +} + +func ToFile(level zerolog.Level) { + Close() + var err error + logFilePointer, err = os.OpenFile(logFilePath, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666) + if err != nil { + logger.Error().Msg(err.Error()) + return + } + logger = zerolog.New(logFilePointer).With().Timestamp().Logger().Level(level) +} + +func ToConsole(level zerolog.Level) { + Close() + logger = zerolog.New(os.Stdout).With().Timestamp().Logger().Level(level) } func Debug(msg string) {