diff -ur postfix-2.4.6.orig/src/cleanup/cleanup.h postfix-2.4.6/src/cleanup/cleanup.h
--- postfix-2.4.6.orig/src/cleanup/cleanup.h	2007-02-16 04:34:34.000000000 +0900
+++ postfix-2.4.6/src/cleanup/cleanup.h	2007-10-30 00:53:59.000000000 +0900
@@ -139,6 +139,7 @@
 extern int cleanup_masq_flags;
 extern MAPS *cleanup_send_bcc_maps;
 extern MAPS *cleanup_rcpt_bcc_maps;
+extern ARGV *cleanup_log_header;
 
  /*
   * Character filters.
diff -ur postfix-2.4.6.orig/src/cleanup/cleanup_init.c postfix-2.4.6/src/cleanup/cleanup_init.c
--- postfix-2.4.6.orig/src/cleanup/cleanup_init.c	2007-03-11 08:19:41.000000000 +0900
+++ postfix-2.4.6/src/cleanup/cleanup_init.c	2007-10-30 01:05:29.000000000 +0900
@@ -160,6 +160,7 @@
 char   *var_milt_eod_macros;		/* end-of-data macros */
 char   *var_milt_unk_macros;		/* unknown command macros */
 char   *var_cleanup_milters;		/* non-SMTP mail */
+char   *var_log_header;
 
 CONFIG_INT_TABLE cleanup_int_table[] = {
     VAR_HOPCOUNT_LIMIT, DEF_HOPCOUNT_LIMIT, &var_hopcount_limit, 1, 0,
@@ -221,6 +222,7 @@
     VAR_MILT_EOD_MACROS, DEF_MILT_EOD_MACROS, &var_milt_eod_macros, 0, 0,
     VAR_MILT_UNK_MACROS, DEF_MILT_UNK_MACROS, &var_milt_unk_macros, 0, 0,
     VAR_CLEANUP_MILTERS, DEF_CLEANUP_MILTERS, &var_cleanup_milters, 0, 0,
+    VAR_LOG_HEADER, DEF_LOG_HEADER, &var_log_header, 0, 0,
     0,
 };
 
@@ -243,6 +245,7 @@
 int     cleanup_masq_flags;
 MAPS   *cleanup_send_bcc_maps;
 MAPS   *cleanup_rcpt_bcc_maps;
+ARGV   *cleanup_log_header;
 
  /*
   * Character filters.
@@ -394,6 +397,8 @@
                                       var_milt_data_macros,
                                       var_milt_eod_macros,
                                       var_milt_unk_macros);
+    if (*var_log_header)
+	cleanup_log_header = argv_split(var_log_header, " ,\t\r\n");
 
     flush_init();
 }
diff -ur postfix-2.4.6.orig/src/cleanup/cleanup_message.c postfix-2.4.6/src/cleanup/cleanup_message.c
--- postfix-2.4.6.orig/src/cleanup/cleanup_message.c	2007-05-09 01:41:42.000000000 +0900
+++ postfix-2.4.6/src/cleanup/cleanup_message.c	2007-10-30 00:57:13.000000000 +0900
@@ -462,6 +462,24 @@
     if (msg_verbose)
 	msg_info("%s: '%.200s'", myname, vstring_str(header_buf));
 
+    if (cleanup_log_header) {
+	char **p;
+	char *header = vstring_str(header_buf);
+	for (p = cleanup_log_header->argv; *p != 0; p++) {
+	    if (strncasecmp(header, *p, strlen(*p)) == 0 && header[strlen(*p)] == ':') {
+		int i;
+		char *out = mymalloc(strlen(header)+1);
+		strcpy(out, header);
+		for (i = 0; out[i] != '\0'; i++) {
+		    if (out[i] == '\r' || out[i] == '\n' || out[i] == '\t')
+			out[i] = ' ';
+		}
+		msg_info("%s: %s", state->queue_id, out);
+		myfree(out);
+	    }
+	}
+    }
+
     /*
      * Crude header filtering. This stops malware that isn't sophisticated
      * enough to use fancy header encodings.
diff -ur postfix-2.4.6.orig/src/global/mail_params.h postfix-2.4.6/src/global/mail_params.h
--- postfix-2.4.6.orig/src/global/mail_params.h	2007-07-11 08:47:45.000000000 +0900
+++ postfix-2.4.6/src/global/mail_params.h	2007-10-30 00:58:54.000000000 +0900
@@ -1625,6 +1625,10 @@
 #define DEF_VIRT_EXPAN_LIMIT	1000
 extern int var_virt_expan_limit;
 
+#define VAR_LOG_HEADER		"log_header"
+#define DEF_LOG_HEADER		""
+extern char *log_header;
+
  /*
   * Message/queue size limits.
   */
