My solution expands on Stuart Hickinbottom 's and xinfa tang 's answers by NOT printing the timestamp of repeated messages:
(defvar my-package--last-message nil
"Last message with timestamp appended to it.")
(defun my-package-ad-timestamp-message (format-string &rest args)
"Prepend timestamp to each message in message buffer.