Что такое средство syslog(), если ни одно из них не используется в сети с помощью openlog()

Я пытаюсь использовать syslog(), и чтение справочных страниц говорит мне, что в openlog() «аргумент средства устанавливает значение по умолчанию, которое будет использоваться, если ни один из них не указан в последующих вызовах syslog()»

Итак, насколько я понимаю, способ сделать это: 1. Позвоните openlog, чтобы установить объект 2. Позвоните syslog(), чтобы войти. 3. Позвоните closelog().

Но что, если я не вызову openlog() перед вызовом syslog()? Что за заведение тогда? Что подразумевается под «устанавливает значение по умолчанию, которое будет использоваться, если оно не указано». Где можно указать, если не openlog()?


person 42_huh    schedule 14.05.2013    source источник


Ответы (1)


Ааа, кажется, я понял. Я думаю, что это означает, что для

syslog(int priority, const char *message, ...);

здесь приоритет может быть несколькими флагами, как показано в примере справочной страницы freebsd:

syslog(LOG_INFO|LOG_LOCAL2, "ошибка foobar: %m");

Здесь объект — LOG_LOCAL2, а приоритет — LOG_INFO. Таким образом, средство, упомянутое в openlog(), вступит в силу, если оно не будет предоставлено при вызове syslog(), как указано выше.

person 42_huh    schedule 14.05.2013