Onde é que o linux guarda o meu syslog?
escrevi uma aplicação de teste simples para registar algo num ficheiro de Registo. Estou a usar linux mint e depois de a aplicação ser executada, tento ver o registo com este comando:
tail -n 100 /var/log/messages
mas as mensagens dos ficheiros não existem nem testadas nem nada. Abaixo encontra o meu código. Talvez eu esteja fazendo algo errado, o arquivo não está armazenado lá ou eu preciso ativar o registro no linux mint.
#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;
}
6 answers
Na minha máquina Ubuntu, consigo ver a saída em {[[0]}.
Tal como referido por outros, a sua saída syslog()
seria registada pelo ficheiro /var/log/syslog
.
Você pode ver Sistema, Usuário e outros logs em /var/log
.
Para mais detalhes: aqui está uma ligação interessante .
Além da resposta aceite, é útil saber o seguinte ...
Cada uma dessas funções deve ter páginas de manual associadas a elas.
Se executar man -k syslog
(uma pesquisa de palavras-chave nas páginas de manual) irá obter uma lista de páginas de manual que se referem a, ou são cerca de 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
Tem de compreender as secções manuais para aprofundar mais.
Aqui está um excerto da página do homem para o homem, que explica as secções da página do homem. :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]
Para ler a execução acima
$man man
Então, se você executar man 3 syslog
você terá uma página de manual completa para a função syslog
que você ligou em seu código.
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);
Não é uma resposta directa, mas espero que ache isto útil.
A localização por omissão do registo (rhel) é
Mensagens Gerais:
/var/log/messages
Mensagens de autenticação:
/var/log/secure
Eventos de correio:
/var/log/maillog
Verifique o seu/etc / syslog.conf (ou /etc/syslog-ng.conf depende de qual das instalações do syslog você instalou)
Exemplo:
$ 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 simplifed approach.
*.* /var/log/messages
Tem de dizer ao sistema que informação registar e onde colocar a informação. O registo está configurado no cat / etc / rsyslog.ficheiro conf, o reinício do rsyslog para carregar a nova configuração. As regras de registo por omissão estão normalmente num ficheiro / etc / rsyslog.d / 50-default.conf.
O Syslog () gera uma mensagem de registo, que será distribuída pelo syslogd.
O ficheiro para configurar o syslogd é o /etc/syslog.conf. Este ficheiro irá dizer - lhe onde estão registadas as mensagens.
Como alterar as opções neste ficheiro ? Aqui tens. http://www.bo.infn.it/alice/alice-doc/mll-doc/duix/admgde/node74.html
O registo é muito configurável no Linux, e poderá querer ver o seu {[[0]} (ou talvez em /etc/rsyslog.d/
). Os detalhes dependem do subsistema de registro, e da distribuição.
Veja também os ficheiros em /var/log/
(e talvez execute dmesg
para os registos do 'kernel').