define-logger: make (define-logger X)' define X-logger'

This commit is contained in:
Matthew Flatt 2012-12-07 06:35:09 -06:00
parent ea79cc4417
commit 4721a79c8f
3 changed files with 8 additions and 5 deletions

View File

@ -45,8 +45,8 @@
[log-X-warning (mk 'warning)] [log-X-warning (mk 'warning)]
[log-X-info (mk 'info)] [log-X-info (mk 'info)]
[log-X-debug (mk 'debug)] [log-X-debug (mk 'debug)]
[current-X-logger [X-logger
(datum->syntax X (string->symbol (format "current-~a-logger" (syntax-e X))) X)] (datum->syntax X (string->symbol (format "~a-logger" (syntax-e X))) X)]
[X X]) [X X])
#'(begin #'(begin
(define X-logger (make-logger 'X (current-logger))) (define X-logger (make-logger 'X (current-logger)))

View File

@ -105,9 +105,11 @@ Defines @racketkeywordfont{log-}@racket[id]@racketkeywordfont{-fatal},
@racketkeywordfont{log-}@racket[id]@racketkeywordfont{-info}, and @racketkeywordfont{log-}@racket[id]@racketkeywordfont{-info}, and
@racketkeywordfont{log-}@racket[id]@racketkeywordfont{-debug} as forms @racketkeywordfont{log-}@racket[id]@racketkeywordfont{-debug} as forms
like @racket[log-fatal], @racket[log-error],@racket[log-warning], like @racket[log-fatal], @racket[log-error],@racket[log-warning],
@racket[log-info], and @racket[log-debug]. The new forms use a logger named @racket[log-info], and @racket[log-debug]. The @racket[define-logger]
@racket['@#,racket[id]] that is a child of @racket[current-logger], form also defines @racket[id]@racketidfont{-logger}, which is a logger named
instead of using @racket[(current-logger)] directly. The new logger is @racket['@#,racket[id]] that is a child of @racket[(current-logger)];
the @racketkeywordfont{log-}@racket[id]@racketkeywordfont{-fatal},
@|etc| forms use this new logger. The new logger is
created when @racket[define-logger] is evaluated.} created when @racket[define-logger] is evaluated.}
@; ---------------------------------------- @; ----------------------------------------

View File

@ -78,6 +78,7 @@
(let () (let ()
(define-logger test) (define-logger test)
(test #t logger? test-logger)
(define r (make-log-receiver (current-logger) 'warning 'test)) (define r (make-log-receiver (current-logger) 'warning 'test))
(log-test-debug (/ 0)) (log-test-debug (/ 0))
(log-test-debug "debug") (log-test-debug "debug")