В C мы регистрируем так:
syslog( LOG_INFO, "proxying %s", url );
В Linux как мы можем проверить журнал?
В C мы регистрируем так:
syslog( LOG_INFO, "proxying %s", url );
В Linux как мы можем проверить журнал?
Ответы:
Как насчет less /var/log/syslog
?
/etc/syslog.conf
tail -f /var/log/syslog
действительно хорош, потому что он показывает самый последний вывод, когда он попадает в системный журнал. Это может быть полезно, если вы пытаетесь устранить что-то вживую, а не смотреть на что-то, что было строго в прошлом.
В Fedora 19 похоже, что ответ есть /var/log/messages
. Хотя проверьте /etc/rsyslog.conf
, не менялось ли оно.
По умолчанию он регистрируется в системном журнале по адресу /var/log/syslog
, поэтому его можно прочитать:
tail -f /var/log/syslog
Если файл не существует, проверьте /etc/syslog.conf
файл конфигурации для syslogd. Обратите внимание, что файл конфигурации может быть другим, поэтому проверьте запущенный процесс, если он использует другой файл:
# ps wuax | grep syslog
root /sbin/syslogd -f /etc/syslog-knoppix.conf
Примечание. В некоторых дистрибутивах (например, Knoppix) все зарегистрированные сообщения могут быть отправлены в другой терминал (например /dev/tty12
), поэтому для доступа, например, tty12
попробуйте нажать Control+ Alt+ F12.
Вы также можете использовать lsof
инструмент, чтобы узнать, какой файл журнала использует syslogd
процесс, например
sudo lsof -p $(pgrep syslog) | grep log$
Чтобы отправить тестовое сообщение в syslogd в оболочке, вы можете попробовать:
echo test | logger
Для устранения неполадок используйте инструмент трассировки ( strace
в Linux, dtruss
в Unix), например:
sudo strace -fp $(cat /var/run/syslogd.pid)
Если вам нравится Vim, он имеет встроенную подсветку синтаксиса для файла системного журнала, например, он выделяет сообщения об ошибках красным цветом.
vi +'syntax on' /var/log/syslog
syslog
пишет ли функция в системный журнал? (Если вы не говорите о нижнем уровне для доступа к кольцевому буферу сообщений ядра, но я сомневаюсь,url
что это такint
.)