Установка имени файла журнала ошибок в apache для включения текущей даты - PullRequest
3 голосов
/ 16 июля 2009

Я пытаюсь, чтобы apache каждый день создавал новый файл журнала ошибок, основываясь на текущей дате. Имя файла журнала ошибок по умолчанию выглядит примерно так: ErrorLog "/logs/error.log"

и я хочу, чтобы это было что-то вроде: ErrorLog "/logs/error_$year$month$day.log"

Есть идеи?

Ответы [ 3 ]

1 голос
/ 16 июля 2009

Взгляните на Cronolog

cronolog - простая программа фильтрации который читает записи файла журнала из стандартный ввод и запись каждой записи в выходной файл, указанный шаблон имени файла и текущая дата и время. Когда расширенное имя файла изменения, текущий файл закрыт и новый открылся. хронолог предназначен для использования в сочетании с веб-сервером, таким как Apache, для разделить журнал доступа на ежедневный или ежемесячные журналы.

0 голосов
/ 13 сентября 2015

Измените это в вашем httpd.conf

ErrorLog "|bin/rotatelogs /var/logs/errorlog.%Y-%m-%d-%H_%M_%S 5M"

Эта конфигурация будет вращать файл журнала ошибок, когда он достигает размера 5 мегабайт, и будет создан суффикс к имени файла журнала в форме errorlog.YYYY-mm-dd-HH_MM_SS.

0 голосов
/ 16 июля 2009

Мой подход заключается в том, чтобы настроить logrotate для apache, чтобы он вращал логи apache один раз в день, затем ..

Для пользовательского журнала, содержащего информацию о дате в каждой строке журнала:

%...{format}t:  The time, in the form given by format, which should
                be in strftime(3) format. (potentially localized)

Вы должны использовать правила форматирования strftime (man 3 strftime):

%F or its equivalent without dashes %Y%m%d

Итак:

# CustomLog with explicit format string
CustomLog my_log "%{%Y%m%d}t %h %l %u %t \"%r\" %>s %b"

Где % {% Y% m% d} t выполняет работу

...