24 lines
773 B
Nim
Raw Permalink Normal View History

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