Wo speichert Linux mein Syslog?

Lesezeit: 5 Minuten

Benutzeravatar von opc0de
opc0de

Ich habe eine einfache Testanwendung geschrieben, um etwas in einer Protokolldatei zu protokollieren. ich benutze Linux-Minze und nachdem die Anwendung ausgeführt wurde, versuche ich, das Protokoll mit diesem Befehl anzuzeigen:

tail -n 100 /var/log/messages

aber die datei messages existiert weder getestet noch so. Unten findet ihr meinen Code. Vielleicht mache ich etwas falsch, die Datei ist dort nicht gespeichert oder ich muss die Anmeldung in Linux Mint aktivieren.

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

void init_log()
{
    setlogmask(LOG_UPTO(LOG_NOTICE));
    openlog("testd",LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1);
}

int main(void) {

    init_log();
    printf("Session started!");
    syslog(LOG_NOTICE, "Session started!!");
    closelog();

    return EXIT_SUCCESS;
}

  • Dies hängt vom verwendeten Systemlogger ab. Es sollte irgendwo eine Konfigurationsdatei enthalten sein /etc/ die Sie für Ihre Kennung ändern müssen ("test" in Ihrem Fall) und Einrichtung.

    – Irgendein Programmierer-Typ

    11. Juni 2012 um 11:59 Uhr

Benutzeravatar von TheCottonSilk
DieBaumwolleSeide

Auf meinem Ubuntu-Rechner kann ich die Ausgabe unter sehen /var/log/syslog.

Auf einem RHEL/CentOS-Computer befindet sich die Ausgabe in /var/log/messages.

Gesteuert wird dies durch die rsyslog Wenn dieser aus irgendeinem Grund deaktiviert ist, müssen Sie ihn möglicherweise mit starten systemctl start rsyslog.

Wie von anderen angemerkt, Ihre syslog() Ausgabe würde von der protokolliert werden /var/log/syslog Datei.
Sie können System-, Benutzer- und andere Protokolle unter einsehen /var/log.

Für weitere Details: hier ist ein interessanter Link.

  • Siehe auch: linuxhomenetworking.com/wiki/index.php/…

    – AjayKumarBasuthkar

    24. März 2014 um 9:02 Uhr

  • Es scheint nicht so /var/log/syslog ist jede Art von wahrer Vorgabe; vielleicht konfiguriert Ubuntu das selbst.

    – kevr

    24. Juli 2018 um 0:55 Uhr

Benutzeravatar von Rob Kielty
Rob Kielty

Zusätzlich zur akzeptierten Antwort ist es nützlich, Folgendes zu wissen …

Jede dieser Funktionen sollte haben Handbuchseiten mit ihnen verbunden.

Wenn du läufst man -k syslog (eine Schlüsselwortsuche in Manpages) erhalten Sie eine Liste von Manpages, auf die verwiesen wird oder über die es geht Syslog

$ man -k syslog
logger (1)           - a shell command interface to the syslog(3) system l...
rsyslog.conf (5)     - rsyslogd(8) configuration file
rsyslogd (8)         - reliable and extended syslogd
syslog (2)           - read and/or clear kernel message ring buffer; set c...
syslog (3)           - send messages to the system logger
vsyslog (3)          - send messages to the system logger

Sie müssen die Abschnitte des Handbuchs verstehen, um sich weiter vertiefen zu können.

Hier ist ein Auszug aus der Manpage für man, der Manpage-Abschnitte erklärt:

The table below shows the section numbers of the manual followed  by
the types of pages they contain.

   1   Executable programs or shell commands
   2   System calls (functions provided by the kernel)
   3   Library calls (functions within program libraries)
   4   Special files (usually found in /dev)
   5   File formats and conventions eg /etc/passwd
   6   Games
   7   Miscellaneous  (including  macro  packages and conven‐
       tions), e.g. man(7), groff(7)
   8   System administration commands (usually only for root)
   9   Kernel routines [Non standard]

Um den obigen Lauf zu lesen

$man man 

Also, wenn Sie laufen man 3 syslog Sie erhalten eine vollständige Handbuchseite für die syslog Funktion, die Sie in Ihrem Code aufgerufen haben.

SYSLOG(3)                Linux Programmer's Manual                SYSLOG(3)

NAME
   closelog,  openlog,  syslog,  vsyslog  - send messages to the system
   logger

SYNOPSIS
   #include <syslog.h>

   void openlog(const char *ident, int option, int facility);
   void syslog(int priority, const char *format, ...);
   void closelog(void);

   #include <stdarg.h>

   void vsyslog(int priority, const char *format, va_list ap);

Keine direkte Antwort, aber hoffentlich finden Sie das nützlich.

  • sh: man: Befehl nicht gefunden

    – Philipp Rego

    17. Februar um 22:27 Uhr

Benutzeravatar von rkosegi
rkosegi

Standardspeicherort für Protokolle (rhel) sind

Allgemeine Meldungen:

/var/log/messages

Authentifizierungsmeldungen:

/var/log/secure

E-Mail-Ereignisse:

/var/log/maillog

Überprüfe dein /etc/syslog.conf oder /etc/syslog-ng.conf (es hängt davon ab, welche Syslog-Funktion Sie installiert haben)

Beispiel:

$ cat /etc/syslog.conf
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none         /var/log/messages

# The authpriv file has restricted access.
authpriv.*                             /var/log/secure

# Log all the mail messages in one place.
mail.*                                 /var/log/maillog

#For a start, use this simplified approach.
*.*                                     /var/log/messages

Benutzeravatar von david takee
David nahm

Sie müssen dem System mitteilen, welche Informationen protokolliert werden sollen und wo die Informationen abgelegt werden sollen. Die Protokollierung wird in konfiguriert /etc/rsyslog.conf Datei, und starten Sie dann rsyslog neu, um die neue Konfiguration zu laden. Die Standardprotokollierungsregeln befinden sich normalerweise in a /etc/rsyslog.d/50-default.conf Datei.

syslog() generiert eine Protokollnachricht, die von syslogd verteilt wird.

Die Datei zum Konfigurieren von syslogd ist /etc/syslog.conf. Diese Datei teilt Ihnen mit, wo die Nachrichten protokolliert werden.

Wie ändere ich Optionen in dieser Datei? Bitte schön
http://www.bo.infn.it/alice/alice-doc/mll-doc/duix/admgde/node74.html

  • Was ist, wenn meine /etc/syslog.conf nur Kommentare enthält? Gibt es einen Standardspeicherort für die Protokolle?

    – Elieser Miron

    17. Februar 2021 um 22:55 Uhr

  • Link ist kaputt…

    – Daniel Griscom

    30. September 2021 um 14:19 Uhr

Die Protokollierung ist in Linux sehr konfigurierbar, und Sie möchten vielleicht einen Blick in Ihre /etc/syslog.conf (oder vielleicht unter /etc/rsyslog.d/). Einzelheiten hängen vom Protokollierungssubsystem und der Verteilung ab.

Schauen Sie auch in die Dateien unter /var/log/ (und vielleicht laufen dmesg für Kernel-Logs).

  • Was ist, wenn meine /etc/syslog.conf nur Kommentare enthält? Gibt es einen Standardspeicherort für die Protokolle?

    – Elieser Miron

    17. Februar 2021 um 22:55 Uhr

  • Link ist kaputt…

    – Daniel Griscom

    30. September 2021 um 14:19 Uhr

Benutzeravatar von Rain
Regen

Ich verwende Ubuntu unter WSL (Windows Subsystem for Linux) und systemctl start rsyslog hat bei mir nicht funktioniert.

Also was ich gemacht habe ist folgendes:

$ service rsyslog start

Jetzt syslog Datei erscheint unter /var/log/

1419820cookie-checkWo speichert Linux mein Syslog?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy