log Asterisk Version number, Build etc into each log file
authorAlec L Davis <sivad.a@paradise.net.nz>
Wed, 7 Sep 2011 08:06:32 +0000 (08:06 +0000)
committerAlec L Davis <sivad.a@paradise.net.nz>
Wed, 7 Sep 2011 08:06:32 +0000 (08:06 +0000)
Allow tracking of previous versions through log file records to be tracked.
Each time log file is created or opened, log Asterisk Version, Buildinfo. etc.

alecdavis (license 585)
Tested by: alecdavis

Review: https://reviewboard.asterisk.org/r/1409/

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@334619 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/logger.c

index 209f374..0c8cdfc 100644 (file)
@@ -48,6 +48,8 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/pbx.h"
 #include "asterisk/app.h"
 #include "asterisk/syslog.h"
+#include "asterisk/buildinfo.h"
+#include "asterisk/ast_version.h"
 
 #include <signal.h>
 #include <time.h>
@@ -235,6 +237,9 @@ static struct logchannel *make_logchannel(const char *channel, const char *compo
 {
        struct logchannel *chan;
        char *facility;
+       struct ast_tm tm;
+       struct timeval now = ast_tvnow();
+       char datestring[256];
 
        if (ast_strlen_zero(channel) || !(chan = ast_calloc(1, sizeof(*chan) + strlen(components) + 1)))
                return NULL;
@@ -283,6 +288,15 @@ static struct logchannel *make_logchannel(const char *channel, const char *compo
                        ast_console_puts_mutable("'\n", __LOG_ERROR);
                        ast_free(chan);
                        return NULL;
+               } else {
+                       /* Create our date/time */
+                       ast_localtime(&now, &tm, NULL);
+                       ast_strftime(datestring, sizeof(datestring), dateformat, &tm);
+
+                       fprintf(chan->fileptr, "[%s] Asterisk %s built by %s @ %s on a %s running %s on %s\n",
+                               datestring, ast_get_version(), ast_build_user, ast_build_hostname,
+                               ast_build_machine, ast_build_os, ast_build_date);
+                       fflush(chan->fileptr);
                }
                chan->type = LOGTYPE_FILE;
        }