27 lines
829 B
Scheme
27 lines
829 B
Scheme
;; utils/logging/state.scm - Logging state management
|
|
|
|
(define-module (utils logging state)
|
|
#:use-module (utils logging level)
|
|
#:export (get-current-log-level
|
|
set-log-level!
|
|
should-log?))
|
|
|
|
;; Mutable state: Current log level
|
|
(define current-log-level 'info)
|
|
|
|
;; Impure function: Get current log level
|
|
(define (get-current-log-level)
|
|
"Get current log level"
|
|
current-log-level)
|
|
|
|
;; Impure function: Set log level with validation
|
|
(define (set-log-level! level)
|
|
"Set current log level (with validation)"
|
|
(if (validate-log-level level)
|
|
(set! current-log-level level)
|
|
(error "Invalid log level" level)))
|
|
|
|
;; Impure function: Check if message should be logged
|
|
(define (should-log? level)
|
|
"Check if message should be logged at current level"
|
|
(should-log-pure current-log-level level))
|