2012-06-08 6 views
5

ich erfolgreich getestet folgende syslog "Hallo Welt" Beispiel auf Ubuntu 12.04:c/C++ syslog, um benutzerdefinierte Datei (nicht/var/log/syslog aber/var/log/mylog) - ubuntu 12.04

// gcc giuspexample.c -o giuspexample 

#include <syslog.h> 

int main() 
{ 
    setlogmask(LOG_UPTO (LOG_NOTICE)); 

    openlog("atm", LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL0); 

    syslog(LOG_NOTICE, "Program started by User %d", getuid()); 
    syslog(LOG_INFO, "A tree falls in a forest"); 

    closelog(); 
    return 0; 
} 

und ich kann den Eintrag in/var/log/syslog lesen. Ich folgte den Anweisungen auf http://www.codealias.info/technotes/syslog_simple_example, wie das Ziel Filepath ändern

echo "local0.* /var/log/mylog" >> /etc/syslog.conf 

aber versuchen

sudo /etc/init.d/syslog restart 

funktioniert nicht (Befehl nicht gefunden) und einen Neustart des PC sowieso laufen nicht startet schreibe auf/var/log/mylog aber immer noch auf/var/log/syslog. Weiß jemand, was los ist? Danke.

Antwort

8

Im /etc/rsyslog.d Verzeichnis gibt es zwei Dateien:

# Log QSD Centro generated log messages to file 
if $programname == 'centro' then /var/log/centro.log 
# Uncomment the following to stop logging anything that matches the last rule. 
& ~ 
:

  1. 20-ufw.conf
  2. 50-default.conf

ich die Datei /etc/rsyslog.d/30-mycustomname.conf mit sudo nano, mit folgendem Inhalt hinzugefügt

Dann überprüfe ich, dass die Datei /var/log/centro.log nicht

sudo rm -f /var/log/centro.log 

Dann existiert ich den Dienst

sudo service rsyslog restart 

Schließlich Der folgende Code funktioniert neu starten:

// gcc centro.c -o centro 

#include <stdio.h> 
#include <syslog.h> 

int main(int argc, char *argv[]) 
{ 
    openlog(NULL, 0, LOG_USER); 

    syslog(LOG_INFO, "MORTACCI TUA!!!"); 

    closelog(); 
    return 0; 
} 
Verwandte Themen