Вы всегда можете добавить тег привязки , где хотите. Как и в Свернутое встроенное меню , вы можете использовать следующее:
Option 3
Я создал рабочую демонстрацию , пожалуйста, проверьте.
Можно настроить syslogd (и rsyslog, по крайней мере) для не синхронизации файлов журнала после сообщения журнала путем предварительного ожидания "-" к пути файла журнала в конфигурационном файле. Это ускоряет производительность за счет опасности, что сообщения журнала могли быть потеряны в катастрофическом отказе.
Существует несколько опций улучшить производительность системного журнала:
Оптимизация звонит с макросом
int LogMask = LOG_UPTO(LOG_WARNING);
#define syslog(a, ...) if ((a) & LogMask ) syslog((a), __VA_ARGS__)
int main(int argc, char **argv)
{
LogMask = setlogmask(LOG_UPTO(LOG_WARNING));
...
}
Преимущество использования макроса для фильтрации вызовов системного журнала состоит в том, что весь вызов уменьшается до условного перехода на глобальной переменной, очень полезной, если у Вас, оказывается, есть вызовы ОТЛАДКИ, которые переводят большие наборы данных через другие функции.
setlogmask ()
setlogmask(LOG_UPTO(LOG_LEVEL))
setlogmask () оптимизирует вызов, не регистрируясь к/dev/log, но программа все еще вызовет функции, используемые в качестве аргументов.
фильтрация с syslog.conf
*.err /var/log/messages
"проверьте страницу справочника для syslog.conf для деталей".
настройте системный журнал, чтобы сделать асинхронный или буферизованный вход
метажурнал раньше буферизовал вывод журнала и сбросил его в блоках. системный журнал запаса и системный-журнал-ng не делают этого насколько я знаю.
Прежде, чем загрузиться в новом демоне, пишущем Вам, может проверить, быстрее ли системный-журнал-ng (или может быть настроен, чтобы быть быстрее), чем простой системный журнал.
Один прием, который можно использовать при управлении источником к регистрирующемуся приложению, должен кашировать уровень журнала, который Вы хотите в самом приложении, вместо в syslog.conf. Я сделал это несколько лет назад с приложением, которое генерировало огромную, огромную, огромную сумму журналов отладки. Вместо того, чтобы удалять вызовы из производственного кода, мы просто замаскировали так, чтобы вызовы уровня отладки никогда не отправлялись демону. Я на самом деле нашел код, это - Perl, но это - просто передняя сторона к setlogmask (3) вызов.
use Sys::Syslog;
# Start system logging
# setlogmask controls what levels we're going to let get through. If we mask
# them off here, then the syslog daemon doesn't need to be concerned by them
# 1 = emerg
# 2 = alert
# 4 = crit
# 8 = err
# 16 = warning
# 32 = notice
# 64 = info
# 128 = debug
Sys::Syslog::setlogsock('unix');
openlog($myname,'pid,cons,nowait','mail');
setlogmask(127); # allow everything but debug
#setlogmask(255); # everything
syslog('debug',"syslog opened");
Не уверенный, почему я использовал десятичное число вместо битовой маски..., пожимают плечами
Запишите свою собственную реализацию системного журнала.:-P
Это может быть выполнено двумя способами.
LD_PRELOAD
сцепитесь, чтобы переопределить функции системного журнала и заставить их произвести к stderr
вместо этого. Я на самом деле записал сообщение об этом много лет назад: http://marc.info/?m=97175526803720 :-P/dev/log
! :-PХорошо, хорошо, таким образом, это оба остроумные ответы. Вы представили syslogd
видеть, где это засоряет больше всего?
Можно настроить уровень syslogd (или средство) для входа асинхронно путем помещения минус перед путем к файлу журнала (т.е.: пользователь.* [вкладка] -/var/log/user.log).
Удачи.