[dvblast-devel] dvblast loggin to syslog

Georgi Chorbadzhiyski gf at unixsol.org
Thu Aug 25 16:27:21 CEST 2011


Around 08/25/2011 04:07 PM, Georgi Chorbadzhiyski scribbled:
> Around 08/25/2011 03:44 PM, Вячеслав Адаманов scribbled:
>> There are a couple of proposals for logging events in dvblast.
>> When you run multiple copies dvblast on different DVB cards to determine
>> which copies can only PID of the process, it is not convenient if using
>> remote syslog.
> 
> It seems from reading the code that syslog ident is set from the executable name.
> (see dvblast.c around line 812), so if you run dvblast with different names (you
> may use symlinks) you'll have messages from each dvblast easily recognizable.

Or you may use something like the attached that allows to set syslog ident by
using --logger-ident or -g command line parameters.

-- 
Georgi Chorbadzhiyski
http://georgi.unixsol.org/
-------------- next part --------------
diff --git a/dvblast.c b/dvblast.c
index 7cd6c7e..bca3b1d 100644
--- a/dvblast.c
+++ b/dvblast.c
@@ -97,6 +97,7 @@ print_type_t i_print_type = -1;
 volatile sig_atomic_t b_hup_received = 0;
 int i_verbose = DEFAULT_VERBOSITY;
 int i_syslog = 0;
+char *psz_syslog_ident = NULL;
 
 bool b_enable_emm = false;
 bool b_enable_ecm = false;
@@ -461,6 +462,7 @@ void usage()
     msg_Raw( NULL, "  -j --system-charset   character set used for printing messages (default UTF-8)" );
     msg_Raw( NULL, "  -J --dvb-charset      character set used in output DVB tables (default ISO_8859-1)" );
     msg_Raw( NULL, "  -l --logger           use syslog for logging messages instead of stderr" );
+    msg_Raw( NULL, "  -g --logger-ident     program name that will be used in syslog messages" );
     msg_Raw( NULL, "  -x --print            print interesting events on stdout in a given format" );
     msg_Raw( NULL, "  -q --quiet            be quiet (less verbosity, repeat or use number for even quieter)" );
     msg_Raw( NULL, "  -Q --quit-timeout     when locked, quit after this delay (in ms), or after the first lock timeout" );
@@ -532,6 +534,7 @@ int main( int i_argc, char **pp_argv )
         { "system-charset",  required_argument, NULL, 'j' },
         { "dvb-charset",     required_argument, NULL, 'J' },
         { "logger",          no_argument,       NULL, 'l' },
+        { "logger-ident",    required_argument, NULL, 'g' },
         { "print",           required_argument, NULL, 'x' },
         { "quit-timeout",    required_argument, NULL, 'Q' },
         { "quiet",           no_argument,       NULL, 'q' },
@@ -541,7 +544,7 @@ int main( int i_argc, char **pp_argv )
         { 0, 0, 0, 0 }
     };
 
-    while ( (c = getopt_long(i_argc, pp_argv, "q::c:r:t:o:i:a:n:f:F:R:s:S:v:pb:I:m:P:K:G:H:X:O:uwUTL:E:d:D:A:lzCWYeM:N:j:J:x:Q:hVZ:", long_options, NULL)) != -1 )
+    while ( (c = getopt_long(i_argc, pp_argv, "q::c:r:t:o:i:a:n:f:F:R:s:S:v:pb:I:m:P:K:G:H:X:O:uwUTL:E:d:D:A:lg:zCWYeM:N:j:J:x:Q:hVZ:", long_options, NULL)) != -1 )
     {
         switch ( c )
         {
@@ -777,6 +780,10 @@ int main( int i_argc, char **pp_argv )
             b_enable_syslog = 1;
             break;
 
+        case 'g':
+            psz_syslog_ident = optarg;
+            break;
+
         case 'x':
             if ( !strcmp(optarg, "text") )
                 i_print_type = PRINT_TEXT;
@@ -809,7 +816,7 @@ int main( int i_argc, char **pp_argv )
         usage();
 
     if ( b_enable_syslog )
-        msg_Connect( pp_argv[0] );
+        msg_Connect( psz_syslog_ident ? psz_syslog_ident : pp_argv[0] );
 
     if ( i_verbose )
         DisplayVersion();


More information about the dvblast-devel mailing list