-// state the send records. The clock gives the times of the records and the time
-// zone of the answer. Image names are checked before the record is written, and
-// uploads start only after the record is durable. Text-only records keep their
-// text digest.
-func whatsappSend(ctx context.Context, link WhatsAppLink, groups *WhatsAppGroups, state *WhatsAppState, images *ImageStore, clock func() time.Time, id, chat, text, image string) (string, error) {
+// state the send records, and logger gets one line for each send. The clock
+// gives the times of the records and the time zone of the answer. Image names
+// are checked before the record is written, and uploads start only after the
+// record is durable. Text-only records keep their text digest.
+func whatsappSend(ctx context.Context, link WhatsAppLink, groups *WhatsAppGroups, state *WhatsAppState, images *ImageStore, logger *slog.Logger, clock func() time.Time, id, chat, text, image string) (string, error) {