Aha! Thanks for the quick reply. I'll have to rethink how I'm handling logging.
On Thursday, January 17, 2019 at 9:03:39 PM UTC-5, Matthew Flatt wrote: > > Yes, the default logger cheats. When you log a relevant message, it's > written immediately to stdout/stderr/syslog instead of being posted to > a receiver that is later polled. > > At Thu, 17 Jan 2019 17:59:30 -0800 (PST), Brian Adkins wrote: > > I've created my own logger via make-logger, and I started a thread with > a > > loop that sync's on the log receiver I created via make-log-receiver. > I'm > > logging some messages in a test, and it appears that the test completes > > (and presumably kills the log receiver thread) before the log message is > > displayed. I'm calling (flush-output) after printf'ing the message to > > standard out. > > > > The default logger does not have this problem. Is that because it > doesn't > > use a separate thread to sync on the log messages and display them? Or > am I > > misunderstanding how to best utilize a custom logger? > > > > I've copy/pasted some code below for specifics. > > > > Thanks, > > Brian > > > > (define axio-logger (make-logger 'axio)) > > > > (define/contract (axio-log-debug str) > > (-> string? any) > > (log-message axio-logger 'debug str #f)) > > > > ... > > > > (define/contract (axio-init-logger level) > > (-> symbol? any) > > (define axio-log-receiver (make-log-receiver axio-logger level)) > > > > (thread > > (λ () > > (let loop () > > (define v (sync axio-log-receiver)) > > (printf "[~a] ~a\n" > > (vector-ref v 0) > > (vector-ref v 1)) > > (flush-output) > > (loop))))) > > > > > > (axio-log-debug "my log message") > > > > -- > > You received this message because you are subscribed to the Google > Groups > > "Racket Users" group. > > To unsubscribe from this group and stop receiving emails from it, send > an > > email to [email protected] <javascript:>. > > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.

