I often find that for debugging I want to see a log message saying "I'm
about to do X" followed by X followed by "I'm done with X" and I want it to
return the result of X.

I wrote this macro and posted it to the package server:
https://pkgs.racket-lang.org/package/log-bracketed

In retrospect, the syntax is bad and I should change it.  Can anyone
suggest something better?

  (define (on-complete x) (log-test-debug "entering on-complete") x)
  (struct person (name) #:transparent)

  (log-bracketed test-debug "on-complete" "time: ~a" (current-seconds)
(on-complete (person 'bob)))
  (log-bracketed test-debug "on-complete" "" "no user-specified
logging information")

Spits out:


test: about to on-complete. time: 1630611613
test: entering on-complete
test: after on-complete. time: 1630611613. result: (person 'bob)
(person 'bob)
test: about to on-complete
test: after on-complete. result: "no user-specified logging information"
"no user-specified logging information"


The problem is that this looks like it's a simple logging message when in
fact it's real code that should not be ignored.  I'm trying to think of a
better way to do it...maybe something like this?:

  (with-bracketing-logs ([test-debug "on-complete" "time: ~a"
(current-seconds)])

     (on-complete (person 'bob))

-- 
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].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/CAE8gKocZha-NpiFAAKT1c8QTG3MDFRnvxCD4T0P269EncZW3KQ%40mail.gmail.com.

Reply via email to