[racket] Logging
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!