On Wednesday, Russell Adams wrote: > Does anyone have a good example of using the built-in logger and log > levels, particularly how one can alter the log-level on the fly > without restarting (to pass a CLI parameter or change an ENV var).
I've already mentioned my interactive thing as a place that does that. Here's a small piece of code that I extracted from there, that starts a thread to print info-level log events: (let ([r (make-log-receiver (current-logger) 'info)]) (thread (lambda () (let loop () (match (sync r) [(vector l m v) (printf ";; [~a] ~a~a\n" l m (if v (format " ~.s" v) "")) (flush-output)]) (loop))))) If you try to evaluate something like (define (foo) (-)) before the above you won't see anything, and after the above you'll see the compiler warnings. -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life! _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users