From d824318a6655fb29f77a323c54ecb6c967fa89f8 Mon Sep 17 00:00:00 2001 From: Atterpac <89053530+atterpac@users.noreply.github.com> Date: Thu, 23 Jan 2025 04:12:18 -0700 Subject: [PATCH] fix dev mode logging bug (#3972) changelog.md retain env support actually fix the issue --- v2/internal/app/app_dev.go | 21 ++++++++++----------- v2/pkg/logger/logger.go | 18 ++++++++++++++++++ website/src/pages/changelog.mdx | 1 + 3 files changed, 29 insertions(+), 11 deletions(-) diff --git a/v2/internal/app/app_dev.go b/v2/internal/app/app_dev.go index 58cd94ef0..89265c9b9 100644 --- a/v2/internal/app/app_dev.go +++ b/v2/internal/app/app_dev.go @@ -75,7 +75,7 @@ func CreateApp(appoptions *options.App) (*App, error) { loglevel := os.Getenv("loglevel") if loglevel == "" { - loglevelFlag = devFlags.String("loglevel", "debug", "Loglevel to use - Trace, Debug, Info, Warning, Error") + loglevelFlag = devFlags.String("loglevel", appoptions.LogLevel.String(), "Loglevel to use - Trace, Debug, Info, Warning, Error") } // If we weren't given the assetdir in the environment variables @@ -91,8 +91,15 @@ func CreateApp(appoptions *options.App) (*App, error) { if frontendDevServerURLFlag != nil { frontendDevServerURL = *frontendDevServerURLFlag } - if loglevelFlag != nil { - loglevel = *loglevelFlag + // Only override LogLevel if the flag was explicitly set + if loglevelFlag != nil && devFlags.Lookup("loglevel").Value.String() != appoptions.LogLevel.String() { + loggerLevel, err := pkglogger.StringToLogLevel(*loglevelFlag) + if err != nil { + return nil, err + } + if loggerLevel != appoptions.LogLevel { + myLogger.SetLogLevel(loggerLevel) + } } } @@ -169,14 +176,6 @@ func CreateApp(appoptions *options.App) (*App, error) { ctx = context.WithValue(ctx, "devserver", devServer) } - if loglevel != "" { - level, err := pkglogger.StringToLogLevel(loglevel) - if err != nil { - return nil, err - } - myLogger.SetLogLevel(level) - } - // Attach logger to context ctx = context.WithValue(ctx, "logger", myLogger) ctx = context.WithValue(ctx, "buildtype", "dev") diff --git a/v2/pkg/logger/logger.go b/v2/pkg/logger/logger.go index abc288265..990dffe75 100644 --- a/v2/pkg/logger/logger.go +++ b/v2/pkg/logger/logger.go @@ -41,6 +41,24 @@ func StringToLogLevel(input string) (LogLevel, error) { return result, nil } +// String returns the string representation of the LogLevel +func (l LogLevel) String() string { + switch l { + case TRACE: + return "trace" + case DEBUG: + return "debug" + case INFO: + return "info" + case WARNING: + return "warning" + case ERROR: + return "error" + default: + return "debug" + } +} + // Logger specifies the methods required to attach // a logger to a Wails application type Logger interface { diff --git a/website/src/pages/changelog.mdx b/website/src/pages/changelog.mdx index 0356342cc..697ee4ef2 100644 --- a/website/src/pages/changelog.mdx +++ b/website/src/pages/changelog.mdx @@ -21,6 +21,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Added option to set window class name on Windows. Added in [PR](https://github.com/wailsapp/wails/pull/3828) by @APshenkin ### Fixed +- Fixed dev mode logging bug by @attperac in [#3972](https://wailsapp/wails/pull/3972) - Fixed `reloaddirs` wails.json config options by @atterpac in [#4005](https//github.com/wailsapp/wails/pull/4005) - Fixed cross compilation failed with CGO [PR](https://github.com/wailsapp/wails/pull/3795) by [@fcying](https://github.com/fcying) - Using go-webview2 v0.1.17 to fix native webview2loader issue, by @leaanthony