2025-02-05 15:21:11 +01:00
|
|
|
import std/strutils
|
|
|
|
|
import std/typetraits
|
|
|
|
|
|
2025-02-05 10:52:15 +01:00
|
|
|
import pkg/chronicles
|
|
|
|
|
import pkg/chronicles/helpers
|
|
|
|
|
import pkg/chronicles/topics_registry
|
|
|
|
|
|
2025-02-05 15:21:11 +01:00
|
|
|
proc updateLogLevel*(logLevel: string) =
|
|
|
|
|
notice "Updating logLevel", logLevel
|
2025-02-05 10:52:15 +01:00
|
|
|
let directives = logLevel.split(";")
|
|
|
|
|
try:
|
2025-02-05 16:06:04 +01:00
|
|
|
setLogLevel(LogLevel.TRACE) #parseEnum[LogLevel](directives[0].toUpperAscii))
|
2025-02-05 10:52:15 +01:00
|
|
|
except ValueError:
|
2025-02-05 15:21:11 +01:00
|
|
|
notice "valueerror logLevel", logLevel
|
2025-02-05 10:52:15 +01:00
|
|
|
raise (ref ValueError)(
|
|
|
|
|
msg:
|
|
|
|
|
"Please specify one of: trace, debug, " & "info, notice, warn, error or fatal"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
if directives.len > 1:
|
|
|
|
|
for topicName, settings in parseTopicDirectives(directives[1 ..^ 1]):
|
|
|
|
|
if not setTopicState(topicName, settings.state, settings.logLevel):
|
|
|
|
|
warn "Unrecognized logging topic", topic = topicName
|