Difference between revisions of "UsingSyslog"

From ArmadeusWiki
Jump to: navigation, search
m (Calling syslog method from your C source code)
Line 1: Line 1:
 
==Calling syslog method from your C source code==
 
==Calling syslog method from your C source code==
This part is quiet simple, but we need to correctly use each parameter.
+
This part is quite simple, but we need to correctly use each parameter.
 
First step is to declare us as syslog client :
 
First step is to declare us as syslog client :
 
<source lang="C">
 
<source lang="C">

Revision as of 14:40, 21 September 2012

Calling syslog method from your C source code

This part is quite simple, but we need to correctly use each parameter. First step is to declare us as syslog client :

...
#include <syslog.h>

int main(int argc, char *argv[])
{
    ...
    openlog("program_name", LOG_PID, LOG_USER);
    ...
    closelog();
    ...
}

Then, you can call syslog from your code using printf like format :

    ...
    syslog(LOG_INFO, "%s called with %d arguments\n", argv[0], argc);
    ...

If you compile the source file:

// log_syslog.c
#include <syslog.h>

int main(int argc, char *argv[])
{
    openlog("program_name", LOG_PID, LOG_USER);
    syslog(LOG_INFO, "%s called with %d arguments", argv[0], argc - 1);
    closelog();
    return 0;
}

With the command :

itsme@mycomputer:~/log_syslog$ gcc log_syslog.c -o log-syslog

Then run it 2 times :

itsme@mycomputer:~/log_syslog$ ./log_syslog
itsme@mycomputer:~/log_syslog$ ./log_syslog pim pam poum

You will probably obtain no result in shell, but you can take a look in your system log (/var/log/syslog or /var/log/messages)

itsme@mycomputer:~/log_syslog$ tail -n 2 /var/log/syslog
Sep 19 18:46:49 mycomputer program_name[3022]: ./log_syslog called with 0 arguments
Sep 19 18:46:53 mycomputer program_name[3023]: ./log_syslog called with 3 arguments

We can notice, that the lines contain program_name[PID] pattern showing us the name we have specified in openlog and the pid of the process because we ask it with LOG_PID argument.