The other options are prettier and the hook is more flexible; I had only cared about
tangling though so I set this:
(defadvice org-babel-tangle (before org-babel-tangle-before activate)
(message (concat "org-babel-tangle BEFORE: <"
(format-time-string "%Y-%m-%dT%T%z")
">")))
(defadvice org-babel-tangle (after org-babel-tangle-after activate)
(message (concat "org-babel-tangle AFTER: <"
(format-time-string "%Y-%m-%dT%T%z")
">")))
For some reason couldn't get around advice working here, it was just never run.