fix(settings): It's not possible to switch the log level (#13309)

* chore: bump status-go

Closes #13139

* fix(settings): It's not possible to switch the log level

Previously it was not possible to change the state of the Debug toggle.
This is because the code forced the setting the default value, ignoring
the database setup, hence always setting the DEBUG as LogLevel.

Closes #13139
This commit is contained in:
Godfrain Jacques 2024-02-05 09:11:27 -08:00 committed by GitHub
parent 0dd07a825a
commit ae16bd8b67
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 40 additions and 5 deletions

View File

@ -63,6 +63,9 @@ method toggleAutoMessage*(self: AccessInterface) {.base.} =
method isDebugEnabled*(self: AccessInterface): bool {.base.} =
raise newException(ValueError, "No implementation available")
method isRuntimeLogLevelSet*(self: AccessInterface): bool {.base.} =
raise newException(ValueError, "No implementation available")
method toggleDebug*(self: AccessInterface) {.base.} =
raise newException(ValueError, "No implementation available")

View File

@ -105,6 +105,9 @@ method toggleDebug*(self: Module) =
method onDebugToggled*(self: Module) =
self.view.isDebugEnabledChanged()
method isRuntimeLogLevelSet*(self: Module): bool =
return constants.runtimeLogLevelSet()
method toggleWalletSection*(self: Module) =
self.controller.toggleWalletSection()

View File

@ -88,6 +88,11 @@ QtObject:
proc toggleDebug*(self: View) {.slot.} =
self.delegate.toggleDebug()
proc getIsRuntimeLogLevelSet*(self: View): bool {.slot.} =
return self.delegate.isRuntimeLogLevelSet()
QtProperty[bool] isRuntimeLogLevelSet:
read = getIsRuntimeLogLevelSet
proc toggleWalletSection*(self: View) {.slot.} =
self.delegate.toggleWalletSection()

View File

@ -405,7 +405,8 @@ QtObject:
"TorrentDir": DEFAULT_TORRENT_CONFIG_TORRENTDIR
}
result["LogLevel"] = newJString(toStatusGoSupportedLogLevel(main_constants.LOG_LEVEL))
if main_constants.runtimeLogLevelSet():
result["RuntimeLogLevel"] = newJString(toStatusGoSupportedLogLevel(main_constants.LOG_LEVEL))
if STATUS_PORT != 0:
result["ListenAddr"] = newJString("0.0.0.0:" & $main_constants.STATUS_PORT)

View File

@ -5,6 +5,7 @@ import ../settings/service as settings_service
import ../../../app/core/eventemitter
import ../../../app/core/fleets/fleet_configuration
import ../../../backend/node_config as status_node_config
import ../../../constants as main_constants
export node_config
@ -14,7 +15,9 @@ logScope:
const WAKU_VERSION_1* = 1
const WAKU_VERSION_2* = 2
const SIGNAL_NODE_LOG_LEVEL_UPDATE* = "nodeLogLevelUpdated"
const
SIGNAL_NODE_LOG_LEVEL_UPDATE* = "nodeLogLevelUpdated"
DEBUG_LOG_LEVELS = @["DEBUG", "TRACE"]
type
NodeLogLevelUpdatedArgs* = ref object of Args
@ -194,7 +197,10 @@ proc getLogLevel(self: Service): string =
return self.configuration.LogLevel
proc isDebugEnabled*(self: Service): bool =
return self.getLogLevel() == $LogLevel.DEBUG
var logLevel = self.getLogLevel()
if main_constants.runtimeLogLevelSet():
logLevel = main_constants.LOG_LEVEL
return logLevel in DEBUG_LOG_LEVELS
proc setLogLevel*(self: Service, logLevel: LogLevel): bool =
var newConfiguration = self.configuration

View File

@ -16,6 +16,7 @@ QtObject {
property bool isDebugEnabled: advancedModule? advancedModule.isDebugEnabled : false
readonly property bool isWakuV2ShardedCommunitiesEnabled: localAppSettings.wakuV2ShardedCommunitiesEnabled ?? false
property int logMaxBackups: advancedModule ? advancedModule.logMaxBackups : 1
property bool isRuntimeLogLevelSet: advancedModule ? advancedModule.isRuntimeLogLevelSet: false
property var customNetworksModel: advancedModule? advancedModule.customNetworksModel : []

View File

@ -354,10 +354,26 @@ SettingsContentBase {
anchors.rightMargin: 0
text: qsTr("Debug")
isSwitch: true
isEnabled: !root.advancedStore.isRuntimeLogLevelSet
switchChecked: root.advancedStore.isDebugEnabled
onClicked: {
Global.openPopup(enableDebugComponent)
}
MouseArea {
id: overlayMouseArea
anchors.fill: parent
enabled: true
hoverEnabled: true
propagateComposedEvents: true
}
StatusToolTip {
text: qsTr("The value is overridden with runtime options")
visible: overlayMouseArea.containsMouse && root.advancedStore.isRuntimeLogLevelSet
delay: 1000
}
}
// TODO: replace with StatusQ component

View File

@ -54,7 +54,7 @@ Rectangle {
anchors.verticalCenter: parent.verticalCenter
text: root.text
font.pixelSize: 15
color: !root.isEnabled ? Style.current.secondaryText : Style.current.textColor
color: Style.current.textColor
}
StyledText {

2
vendor/status-go vendored

@ -1 +1 @@
Subproject commit 9c131edfaa47ab38fe25048a7116dc4c54336336
Subproject commit 4584de34b096f93e6f1be760cd1105f956c91962