Запись сообщений в syslog из shell скрипта

Логи в скриптах можно вести несколькими способами, один из самых простых – записывать новые сообщения в какой-то файл. Но мне такой подход кажется неправильным. В системе уже есть специальный инструмент для ведения логов syslog. Вот его и стоит использовать!
Для добавления сообщений в syslog есть утилита logger. В принципе может писать сообщения и в отдельный файл. Напишу небольшую функцию, которую можно будет добавлять в любой скрипт для ведения логов.

add_log_message ()
{
 local logger='/usr/bin/logger'
 local tag='My Script'
 local port=514
 local host=localhost
 local facility='user'
 local level='notice'
 local message=$1
  if [ -z $message ]; then
        return 1
  else
    $logger -t "$tag" -p ${facility}.${level} -P $port -h $host "$message"
    if [ "x$?" != "x0" ]; then
        return 2
    fi
  fi
}

add_log_message 'Hello world'

Опция -t задает TAG, фактически TAG можно использовать для идентификации источника сообщения. Так же logger умеет отправлять сообщения syslog-у на другом сервер, т.е. легко можно организовать сбор всех типов логов на один сервер.

logger -P 514 -h logger.domain.ru 'Hello World'

По умолчанию logger пишет все сообщения в facility user с приоритетом notice, но это можно поменять используя ключ -p:

logger -p cron.warning 'Hello world'

Tags: , ,

Среда, Апрель 28th, 2010 Советы
Tinkerbell Personal Checks |Garden Planters | Jewellery For Women | Best Dog Foods | Budget Wedding Gowns | Shop For Jewellery | Vintage Jewellery| Diamante Jewellery | Car Finance Credit | DoorStep Loans