LP#1343578: Perl/C syslog "logtag" additions.
authorBill Erickson <berick@esilibrary.com>
Thu, 17 Jul 2014 19:10:35 +0000 (15:10 -0400)
committerGalen Charlton <gmc@esilibrary.com>
Wed, 20 Aug 2014 21:00:10 +0000 (14:00 -0700)
 * Honor logtag value when applying a default appname for Perl and C
 * Extract / apply logtag in the router
 * Minor repair: avoid redundant strdup

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>

src/libopensrf/log.c
src/libopensrf/osrf_system.c
src/perl/lib/OpenSRF/Utils/Logger.pm
src/router/osrf_router_main.c

index 1bb2747..7954e72 100644 (file)
@@ -605,7 +605,7 @@ static void _osrfLogToFile( const char* label, long pid, const char* filename, i
                return;           // No log file defined
 
        if(!_osrfLogAppname)
-               _osrfLogAppname = strdup("osrf");   // apply default application name
+               osrfLogSetAppname("osrf"); // apply default application name
 
        char datebuf[36];
        time_t t = time(NULL);
index 7a95819..684dd0d 100644 (file)
@@ -395,7 +395,7 @@ int osrfSystemBootstrapClientResc( const char* config_file,
        if(log_level) llevel = atoi(log_level);
 
        if(!strcmp(log_file, "syslog")) {
-               if(logtag) osrfLogSetLogTag(strdup(logtag));
+               if(logtag) osrfLogSetLogTag(logtag);
                osrfLogInit( OSRF_LOG_TYPE_SYSLOG, contextnode, llevel );
                osrfLogSetSyslogFacility(osrfLogFacilityToInt(facility));
                if(actlog) osrfLogSetSyslogActFacility(osrfLogFacilityToInt(actlog));
index 77c8593..4798812 100644 (file)
@@ -34,8 +34,8 @@ my $logfile;            # log file
 my $facility;           # syslog facility
 my $actfac;             # activity log syslog facility
 my $actfile;            # activity log file
-my $service = $0;       # default service name
-my $service_tag = '';       # default service name
+my $service;            # syslog service name.  default provided below.
+my $service_tag = '';   # default service tag
 my $syslog_enabled = 0; # is syslog enabled?
 my $act_syslog_enabled = 0; # is syslog enabled?
 my $logfile_enabled = 1;    # are we logging to a file?
@@ -236,6 +236,9 @@ sub _log_message {
     my( $msg, $level ) = @_;
     return if $level > $loglevel;
 
+    # apply a sane default service name/tag
+    $logger->set_service($0) unless $service;
+
     my $l; my $n; 
     my $fac = $facility;
 
index 5e51062..b7b64e2 100644 (file)
@@ -256,6 +256,7 @@ static void setupRouter( const jsonObject* configChunk, int configPos ) {
 
        const char* level    = jsonObjectGetString( jsonObjectGetKeyConst( configChunk, "loglevel" ));
        const char* log_file = jsonObjectGetString( jsonObjectGetKeyConst( configChunk, "logfile" ));
+       const char* log_tag  = jsonObjectGetString( jsonObjectGetKeyConst( configChunk, "logtag" ));
        const char* facility = jsonObjectGetString( jsonObjectGetKeyConst( configChunk, "syslog" ));
 
        int llevel = 1;
@@ -268,6 +269,7 @@ static void setupRouter( const jsonObject* configChunk, int configPos ) {
        }
 
        if(!strcmp(log_file, "syslog")) {
+               if(log_tag) osrfLogSetLogTag(log_tag);
                osrfLogInit( OSRF_LOG_TYPE_SYSLOG, "router", llevel );
                osrfLogSetSyslogFacility(osrfLogFacilityToInt(facility));