[syslog-ng] How to log messages generated by C program and log file rotation

Jean Faye ismael.faye at yahoo.fr
Wed Aug 6 11:10:44 CEST 2014




Hi all,
I want to use syslog-ng to log the messages generated by my application implemented in C language. I added this in the code:

    char    *log="rtcd";
    printf("[%s] RTC adjustement\n",__func__);
    openlog(log, LOG_PID, LOG_LOCAL0);
    syslog(LOG_DEBUG, "[FIJ] RTC adjustement");
    closelog();


For
 me, according to the syslog-ng file, the files 
/var/log/ldb/GENTrace.log, /var/log/ldb/SUTrace.log, 
/var/log/ldb/WANTrace.log and /var/log/ldb/CPLTrace.log must be
 created and must contain the syslog message.
But I got no messages in my destination files. You can see the content of my syslog-ng.conf file bellow.

Is it the right way to log the messages sent by C program? What can explain that I got no messages in the destinations files?

I
 am using syslog-ng 3.5.4.1 provided by yocto. And in the script which 
run the binary (initscript file) I remove the line below:

. /etc/init.d/functions

Why are you using the line? Is it necessary to use it?

Concerning
 log file rotation, How can we manage it using syslog-ng? For example I 
want to have a destination file with a size maximum = 2Mo and if the 
size is greater than the max size, I have to save the current one and 
create a new one. On my
 system I can have max 4 files (4 x 2Mo). How can I manage this kind of 
rotation?

Thanks in advance.
Best regards,
Ismael Jean FAYE 

@version: 3.5
#
# Syslog-ng configuration file, compatible with default Debian syslogd
# installation. Originally written by anonymous (I can't find his name)
# Revised, and rewrited by me (SZALAY Attila <sasa at debian.org>)

# First, set some global options.
options { chain_hostnames(off); flush_lines(0); use_dns(no); use_fqdn(no);
      owner("root"); group("adm"); perm(0640); stats_freq(0);
      bad_hostname("^gconfd$");create_dirs(yes);
};

########################
# Sources
########################

source s_mysource { 
    pipe("/tmp/pipe" pad_size(2048));
};

########################
# Destinations
########################

destination d_GEN { 
                file("/var/log/ldb/GENTrace.log");
};

destination d_SU { 
                file("/var/log/ldb/SUTrace.log");
};

destination d_WAN { 
                file("/var/log/ldb/WANTrace.log");
};

destination d_CPL { 
                file("/var/log/ldb/CPLTrace.log");
};

########################
# Filters
########################

filter f_GEN { 
                #facility(local0) and filter(nom_du_composant_applicatif);
                #facility(local0) and filter(f_debug);
      
          facility(local0);
};

filter f_SU { 
                #facility(local0) and filter(nom_du_composant_applicatif);
                #facility(local0) and filter(f_debug);
                facility(local0);
};

filter f_WAN { 
                #facility(local0) and filter(nom_du_composant_applicatif);
                #facility(local0) and filter(f_debug);
                facility(local0);
};

filter f_CPL { 
                #facility(local0) and filter(nom_du_composant_applicatif);
                #facility(local0) and filter(f_debug);
                facility(local0);
};

########################
# Log paths
########################

log { source(s_mysource); filter(f_GEN); destination(d_GEN); };
log { source(s_mysource); filter(f_SU);
 destination(d_SU); };
log { source(s_mysource); filter(f_WAN); destination(d_WAN); };
log { source(s_mysource); filter(f_CPL); destination(d_CPL); };





Le Mardi 5 août 2014 16h05, Jean Faye <ismael.faye at yahoo.fr> a écrit :
 


confirm a6d843f7ad7d1dbf1fefb6f12432e54941a680a9

Hi all,
I want to use syslog-ng to log the messages generated by my application implemented in C language. I added this in the code:

    char    *log="rtcd";
    printf("[%s] RTC adjustement\n",__func__);
    openlog(log, LOG_PID, LOG_LOCAL0);
    syslog(LOG_DEBUG, "[FIJ] RTC adjustement");
    closelog();


For me, according to the syslog-ng file, the files /var/log/ldb/GENTrace.log,
 /var/log/ldb/SUTrace.log, /var/log/ldb/WANTrace.log and /var/log/ldb/CPLTrace.log must be created and must contain the syslog message.
But I got no messages in my destination files. You can see the content of my syslog-ng.conf file bellow.

Is it the right way to log the messages sent by C program? What can explain that I got no messages in the destinations files?

Concerning log file rotation, How can we manage it using syslog-ng? For example I want to have a destination file with a size maximum = 2Mo and if the size is greater than the max size, I have to save the current one and create a new one. On my system I can have max 4 files (4 x 2Mo). How can I manage this kind of rotation?

Thanks in advance.
Best regards,
Ismael Jean FAYE 

@version: 3.5
#
# Syslog-ng configuration file, compatible with default Debian syslogd
# installation. Originally written by anonymous (I can't find his name)
# Revised, and rewrited by me (SZALAY Attila <sasa at debian.org>)

# First, set some global options.
options { chain_hostnames(off); flush_lines(0); use_dns(no); use_fqdn(no);
      owner("root"); group("adm"); perm(0640); stats_freq(0);
      bad_hostname("^gconfd$");create_dirs(yes);
};

########################
# Sources
########################

source s_mysource { 
    pipe("/tmp/pipe" pad_size(2048));
};

########################
# Destinations
########################

destination d_GEN { 
                file("/var/log/ldb/GENTrace.log");
};

destination d_SU { 
                file("/var/log/ldb/SUTrace.log");
};

destination d_WAN { 
                file("/var/log/ldb/WANTrace.log");
};

destination
 d_CPL { 
                file("/var/log/ldb/CPLTrace.log");
};

########################
# Filters
########################

#filter f_GEN { 
                #facility(local0) and filter(nom_du_composant_applicatif);
                #facility(local0) and filter(f_debug);
                #facility(local0);
#};

filter f_SU { 
          
      #facility(local0) and filter(nom_du_composant_applicatif);
                #facility(local0) and filter(f_debug);
                facility(local0);
};

filter f_WAN { 
                #facility(local0) and filter(nom_du_composant_applicatif);
                #facility(local0) and filter(f_debug);
                facility(local0);
};

filter f_CPL { 
                #facility(local0) and filter(nom_du_composant_applicatif);
                #facility(local0) and filter(f_debug);
                facility(local0);
};

########################
# Log paths
########################

#log { source(s_mysource); filter(f_GEN); destination(d_GEN); };
log { source(s_mysource); filter(f_SU); destination(d_SU); };
log { source(s_mysource); filter(f_WAN); destination(d_WAN); };
log { source(s_mysource); filter(f_CPL); destination(d_CPL); };
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.balabit.hu/pipermail/syslog-ng/attachments/20140806/53f54801/attachment-0001.htm 


More information about the syslog-ng mailing list