From 2f4ed86a136cfb7547f7e8c3e2109f4473139276 Mon Sep 17 00:00:00 2001 From: Bill Erickson Date: Thu, 17 Jul 2014 15:10:35 -0400 Subject: [PATCH] LP#1343578: Perl/C syslog "logtag" additions. * 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 Signed-off-by: Mike Rylander Signed-off-by: Galen Charlton --- src/libopensrf/log.c | 2 +- src/libopensrf/osrf_system.c | 2 +- src/perl/lib/OpenSRF/Utils/Logger.pm | 7 +++++-- src/router/osrf_router_main.c | 2 ++ 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/libopensrf/log.c b/src/libopensrf/log.c index 1bb2747..7954e72 100644 --- a/src/libopensrf/log.c +++ b/src/libopensrf/log.c @@ -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); diff --git a/src/libopensrf/osrf_system.c b/src/libopensrf/osrf_system.c index 7a95819..684dd0d 100644 --- a/src/libopensrf/osrf_system.c +++ b/src/libopensrf/osrf_system.c @@ -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)); diff --git a/src/perl/lib/OpenSRF/Utils/Logger.pm b/src/perl/lib/OpenSRF/Utils/Logger.pm index 77c8593..4798812 100644 --- a/src/perl/lib/OpenSRF/Utils/Logger.pm +++ b/src/perl/lib/OpenSRF/Utils/Logger.pm @@ -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; diff --git a/src/router/osrf_router_main.c b/src/router/osrf_router_main.c index 5e51062..b7b64e2 100644 --- a/src/router/osrf_router_main.c +++ b/src/router/osrf_router_main.c @@ -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)); -- 2.43.2