chore: re-enable logging in prod version

closes: #8932
This commit is contained in:
Patryk Osmaczko 2023-01-03 21:17:13 +01:00 committed by osmaczko
parent b8a1c70d62
commit ce08265e0d
5 changed files with 43 additions and 17 deletions

View File

@ -409,7 +409,7 @@ $(FCITX5_QT): | check-qt-dir deps
.. $(HANDLE_OUTPUT) && \ .. $(HANDLE_OUTPUT) && \
$(FCITX5_QT_BUILD_CMD) $(FCITX5_QT_BUILD_CMD)
PRODUCTION_PARAMETERS := -d:production -d:chronicles_sinks=textlines[stdout],textlines[nocolors,dynamic] PRODUCTION_PARAMETERS := -d:production
$(STATUS_CLIENT_APPIMAGE): override RESOURCES_LAYOUT := $(PRODUCTION_PARAMETERS) $(STATUS_CLIENT_APPIMAGE): override RESOURCES_LAYOUT := $(PRODUCTION_PARAMETERS)
$(STATUS_CLIENT_APPIMAGE): nim_status_client $(APPIMAGE_TOOL) nim-status.desktop $(FCITX5_QT) $(STATUS_CLIENT_APPIMAGE): nim_status_client $(APPIMAGE_TOOL) nim-status.desktop $(FCITX5_QT)

View File

@ -1,4 +1,4 @@
import NimQml, sequtils, sugar, chronicles import NimQml, sequtils, sugar, chronicles, os
import ../../app_service/service/general/service as general_service import ../../app_service/service/general/service as general_service
import ../../app_service/service/keychain/service as keychain_service import ../../app_service/service/keychain/service as keychain_service
@ -116,6 +116,15 @@ proc connect(self: AppController) =
# not sure, but maybe we should take some actions when node stops # not sure, but maybe we should take some actions when node stops
discard discard
# Handle runtime log level settings changes
if not existsEnv("LOG_LEVEL"):
self.statusFoundation.events.on(node_configuration_service.SIGNAL_NODE_LOG_LEVEL_UPDATE) do(a: Args):
let args = NodeLogLevelUpdatedArgs(a)
if args.logLevel == LogLevel.DEBUG:
setLogLevel(LogLevel.DEBUG)
elif defined(production):
setLogLevel(LogLevel.INFO)
proc newAppController*(statusFoundation: StatusFoundation): AppController = proc newAppController*(statusFoundation: StatusFoundation): AppController =
result = AppController() result = AppController()
result.storeKeyPair = false result.storeKeyPair = false
@ -345,6 +354,11 @@ proc load(self: AppController) =
self.tokenService.init() self.tokenService.init()
self.walletAccountService.init() self.walletAccountService.init()
# Apply runtime log level settings
if not existsEnv("LOG_LEVEL"):
if self.nodeConfigurationService.isDebugEnabled():
setLogLevel(LogLevel.DEBUG)
# load main module # load main module
self.mainModule.load( self.mainModule.load(
self.statusFoundation.events, self.statusFoundation.events,

View File

@ -72,7 +72,7 @@ proc setWakuV2LightClientEnabled*(self: Controller, enabled: bool) =
proc enableDeveloperFeatures*(self: Controller) = proc enableDeveloperFeatures*(self: Controller) =
discard self.settingsService.saveTelemetryServerUrl(DEFAULT_TELEMETRY_SERVER_URL) discard self.settingsService.saveTelemetryServerUrl(DEFAULT_TELEMETRY_SERVER_URL)
discard self.settingsService.saveAutoMessageEnabled(true) discard self.settingsService.saveAutoMessageEnabled(true)
discard self.nodeConfigurationService.setDebugLevel(LogLevel.DEBUG) discard self.nodeConfigurationService.setLogLevel(LogLevel.DEBUG)
quit(QuitSuccess) # quits the app TODO: change this to logout instead when supported quit(QuitSuccess) # quits the app TODO: change this to logout instead when supported
@ -104,14 +104,14 @@ proc isAutoMessageEnabled*(self: Controller): bool =
return self.settingsService.autoMessageEnabled() return self.settingsService.autoMessageEnabled()
proc isDebugEnabled*(self: Controller): bool = proc isDebugEnabled*(self: Controller): bool =
return self.nodeConfigurationService.getDebugLevel() == $LogLevel.DEBUG return self.nodeConfigurationService.isDebugEnabled()
proc toggleDebug*(self: Controller) = proc toggleDebug*(self: Controller) =
var logLevel = LogLevel.DEBUG var logLevel = LogLevel.DEBUG
if(self.isDebugEnabled()): if(self.isDebugEnabled()):
logLevel = LogLevel.INFO logLevel = LogLevel.INFO
if(not self.nodeConfigurationService.setDebugLevel(logLevel)): if(not self.nodeConfigurationService.setLogLevel(logLevel)):
# in the future we may do a call from here to show a popup about this error # in the future we may do a call from here to show a popup about this error
error "an error occurred, we couldn't toggle debug level" error "an error occurred, we couldn't toggle debug level"
return return

View File

@ -18,6 +18,12 @@ const BLOOM_LEVEL_NORMAL* = "normal"
const BLOOM_LEVEL_FULL* = "full" const BLOOM_LEVEL_FULL* = "full"
const BLOOM_LEVEL_LIGHT* = "light" const BLOOM_LEVEL_LIGHT* = "light"
const SIGNAL_NODE_LOG_LEVEL_UPDATE* = "nodeLogLevelUpdated"
type
NodeLogLevelUpdatedArgs* = ref object of Args
logLevel*: LogLevel
type type
ErrorArgs* = ref object of Args ErrorArgs* = ref object of Args
msg*: string msg*: string
@ -244,13 +250,20 @@ proc setV2LightMode*(self: Service, enabled: bool): bool =
newConfiguration.WakuV2Config.LightClient = enabled newConfiguration.WakuV2Config.LightClient = enabled
return self.saveConfiguration(newConfiguration) return self.saveConfiguration(newConfiguration)
proc getDebugLevel*(self: Service): string = proc getLogLevel(self: Service): string =
return self.configuration.LogLevel return self.configuration.LogLevel
proc setDebugLevel*(self: Service, logLevel: LogLevel): bool = proc isDebugEnabled*(self: Service): bool =
return self.getLogLevel() == $LogLevel.DEBUG
proc setLogLevel*(self: Service, logLevel: LogLevel): bool =
var newConfiguration = self.configuration var newConfiguration = self.configuration
newConfiguration.LogLevel = $logLevel newConfiguration.LogLevel = $logLevel
return self.saveConfiguration(newConfiguration) if self.saveConfiguration(newConfiguration):
self.events.emit(SIGNAL_NODE_LOG_LEVEL_UPDATE, NodeLogLevelUpdatedArgs(logLevel: logLevel))
return true
else:
return false
proc isV2LightMode*(self: Service): bool = proc isV2LightMode*(self: Service): bool =
return self.configuration.WakuV2Config.LightClient return self.configuration.WakuV2Config.LightClient

View File

@ -52,11 +52,10 @@ proc prepareLogging() =
except: except:
logLoggingFailure(cstring(msg), getCurrentException()) logLoggingFailure(cstring(msg), getCurrentException())
# do not create log file let defaultLogLvl = if defined(production): LogLevel.INFO else: LogLevel.DEBUG
when not defined(production): # default log level can be overriden by LOG_LEVEL env parameter
# log level can be overriden by LOG_LEVEL env parameter
let logLvl = try: parseEnum[LogLevel](getEnv("LOG_LEVEL")) let logLvl = try: parseEnum[LogLevel](getEnv("LOG_LEVEL"))
except: NONE except: defaultLogLvl
setLogLevel(logLvl) setLogLevel(logLvl)