diff --git a/configs/logger.conf.sample b/configs/logger.conf.sample
index 66f0613ac49c142cf5638b0a523abd28778c65d0..ed48ed627b0f499f0a9036620f7cf21e3ed032f8 100755
--- a/configs/logger.conf.sample
+++ b/configs/logger.conf.sample
@@ -3,6 +3,13 @@
 ;
 ; In this file, you configure logging to files or to
 ; the syslog system.
+
+[general]
+; Customize the display of debug message time stamps
+; this example is the ISO 8601 date format (yyyy-mm-dd HH:MM:SS)
+; see strftime(3) Linux manual for format specifiers
+;dateformat=%F %T
+
 ;
 ; For each file, specify what to log.
 ;
diff --git a/logger.c b/logger.c
index fa73477ea189fca1637b0f23bb5e9f05ce67a478..331ca669f2d484d1973aa312017f9d734c9b05bd 100755
--- a/logger.c
+++ b/logger.c
@@ -48,6 +48,7 @@ static int syslog_level_map[] = {
 
 #define MAX_MSG_QUEUE 200
 
+static char dateformat[256] = "%b %e %T";		/* Original Asterisk Format */
 static ast_mutex_t msglist_lock = AST_MUTEX_INITIALIZER;
 static ast_mutex_t loglock = AST_MUTEX_INITIALIZER;
 static int pending_logger_reload = 0;
@@ -186,6 +187,7 @@ static void init_logger_chain(void)
 	struct logchannel *chan, *cur;
 	struct ast_config *cfg;
 	struct ast_variable *var;
+	char *s;
 
 	/* delete our list of log channels */
 	ast_mutex_lock(&loglock);
@@ -208,6 +210,9 @@ static void init_logger_chain(void)
 	    return;
 
 	ast_mutex_lock(&loglock);
+	if ((s = ast_variable_retrieve(cfg, "general", "dateformat"))) {
+		(void)strncpy(dateformat,s,sizeof(dateformat));
+	}
 	var = ast_variable_browse(cfg, "logfiles");
 	while(var) {
 		chan = make_logchannel(var->name, var->value, var->lineno);
@@ -466,7 +471,7 @@ void ast_log(int level, const char *file, int line, const char *function, const
 
     time(&t);
     localtime_r(&t, &tm);
-    strftime(date, sizeof(date), "%b %e %T", &tm);
+    strftime(date, sizeof(date), dateformat, &tm);
 
 
     if (level == __LOG_EVENT) {