Welcome! Log In Create A New Profile

Advanced

Логирование в PHP скрипте

Posted by TheRoSS 
TheRoSS
Логирование в PHP скрипте
April 12, 2012 06:04AM
Для fpm есть лог файл, настроенный через конфиг /etc/php5/fpm/pool.d/
my.conf на /var/log/php-fpm-my.log
В нём поддерживаются различные уровни логирования: от error до debug.
Есть также мой php скрипт, в котором тоже хотелось бы иметь
логирование.

Вопрос, могу ли я в своём скрипте использовать этот лог-файл для
логирования моих событий?
Пока я нашёл только один способ писать в него. Это через stderr:
$stderr = fopen('php://stderr', 'w');
fwrite($stderr, "DEMONbI!!!\n");

При этом в логе появляется длиннющая запись вида:
[12-Apr-2012 13:27:41.454210] WARNING: pid 23073,
fpm_stdio_child_said(), line 155: [pool my] child 23075 said into
stderr: "DEMONbI!!!"

В которой куча лишней информации и всего один уровень логирования,
WARNING.
Можно ли использовать лог fpm для логирования событий приложения
(скрипта) или я должен для него создавать свой собственный отдельный
лог?
Re: Логирование в PHP скрипте
April 12, 2012 07:50AM
А чем тебе стандартные методы не устраивают - syslog например? Полный набор
уровней и можешь настроить запись через конфиг в любое место.

man syslogd

2012/4/12 TheRoSS <achivi4@gmail.com>

> Для fpm есть лог файл, настроенный через конфиг /etc/php5/fpm/pool.d/
> my.conf на /var/log/php-fpm-my.log
> В нём поддерживаются различные уровни логирования: от error до debug.
> Есть также мой php скрипт, в котором тоже хотелось бы иметь
> логирование.
>
> Вопрос, могу ли я в своём скрипте использовать этот лог-файл для
> логирования моих событий?
> Пока я нашёл только один способ писать в него. Это через stderr:
> $stderr = fopen('php://stderr', 'w');
> fwrite($stderr, "DEMONbI!!!\n");
>
> При этом в логе появляется длиннющая запись вида:
> [12-Apr-2012 13:27:41.454210] WARNING: pid 23073,
> fpm_stdio_child_said(), line 155: [pool my] child 23075 said into
> stderr: "DEMONbI!!!"
>
> В которой куча лишней информации и всего один уровень логирования,
> WARNING.
> Можно ли использовать лог fpm для логирования событий приложения
> (скрипта) или я должен для него создавать свой собственный отдельный
> лог?




--
Best Regards, Kirill Garbar

Phone: +44 75 009 26 199
ICQ: 307099
http://www.inteliec.eu
TheRoSS
Re: Логирование в PHP скрипте
April 12, 2012 09:22AM
Syslog не подходит. Мой лог забьёт его по самые уши. События всех
других служб просто потеряются. Сервер высоконагруженный. То есть лог
у него отдельный и на отдельной fs.
То есть, насколько я понимаю, fpm-овский лог не удастся использовать
для своих нужд?
Andrei Nigmatulin
Re: Логирование в PHP скрипте
April 12, 2012 09:34AM
syslog можно настроить так, чтобы иметь отдельные события в отдельном логе.

fpm лог можно использовать, только обязательно открывайте с флагом APPEND.

On 12/04/12 13:14, TheRoSS wrote:
> Syslog не подходит. Мой лог забьёт его по самые уши. События всех
> других служб просто потеряются. Сервер высоконагруженный. То есть лог
> у него отдельный и на отдельной fs.
> То есть, насколько я понимаю, fpm-овский лог не удастся использовать
> для своих нужд?


--
Andrei Nigmatulin
GPG PUB KEY 6449830D

Now I lay me down to sleep(3)
Pray the OS my core to keep
If I die before I wake
Pray the Disk my core to take
Re: Логирование в PHP скрипте
April 12, 2012 10:44AM
Почитай тут:

http://linux.die.net/man/5/syslog.conf

Можно перенаправлять лог в отдельный файл, пример:

# Store critical stuff in critical
#
*.=crit;kern.none /var/adm/critical



2012/4/12 TheRoSS <achivi4@gmail.com>

> Syslog не подходит. Мой лог забьёт его по самые уши. События всех
> других служб просто потеряются. Сервер высоконагруженный. То есть лог
> у него отдельный и на отдельной fs.
> То есть, насколько я понимаю, fpm-овский лог не удастся использовать
> для своих нужд?




--
Best Regards, Kirill Garbar

Phone: +44 75 009 26 199
ICQ: 307099
http://www.inteliec.eu
Alexander Bodnarashik
Re: Логирование в PHP скрипте
April 12, 2012 10:44AM
php.net/manual/en/function.syslog.php
php.net/manual/en/function.error-log.php


On Apr 12, 2012, at 16:33, Andrei Nigmatulin wrote:

> syslog можно настроить так, чтобы иметь отдельные события в отдельном логе.
>
> fpm лог можно использовать, только обязательно открывайте с флагом APPEND.
>
> On 12/04/12 13:14, TheRoSS wrote:
>> Syslog не подходит. Мой лог забьёт его по самые уши. События всех
>> других служб просто потеряются. Сервер высоконагруженный. То есть лог
>> у него отдельный и на отдельной fs.
>> То есть, насколько я понимаю, fpm-овский лог не удастся использовать
>> для своих нужд?
>
>
> --
> Andrei Nigmatulin
> GPG PUB KEY 6449830D
>
> Now I lay me down to sleep(3)
> Pray the OS my core to keep
> If I die before I wake
> Pray the Disk my core to take
>
TheRoSS
Re: Логирование в PHP скрипте
April 13, 2012 03:52AM
Спасибо. Просмотрел. Интересно. Взял на заметку на будущее. Сейчас
пока логирую через error-log.

Хотя остались несколько вопросов:

1. У меня нет syslogd. У меня есть на девелоперской машине rsyslog, на
некоторых продакшн - syslog-ng. Насколько я понял, в php я могу просто
использовать openlog/syslog/closelog и не думать об их различиях?
Различия будут только в настройках системных конфигов?

2. Насколько системные логгеры подходят для хайлоада? То есть когда в
лог валят тысячи сообщений в секунду. В гугле смотрел, но ничего
толкового сходу не нашёл. Если кто сталкивался, поделитесь опытом.
Re: Логирование в PHP скрипте
April 13, 2012 04:16AM
:-)

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

Более того есть достаточно больше количество сервисов, которые позволяют
вести логи онлайн:
https://app.loggly.com/pricing/

Там можно покрутить и за 15-20 баксов в месяц нормально хранить логи,
плюсом идет удобный поиск.

2012/4/13 TheRoSS <achivi4@gmail.com>

> Спасибо. Просмотрел. Интересно. Взял на заметку на будущее. Сейчас
> пока логирую через error-log.
>
> Хотя остались несколько вопросов:
>
> 1. У меня нет syslogd. У меня есть на девелоперской машине rsyslog, на
> некоторых продакшн - syslog-ng. Насколько я понял, в php я могу просто
> использовать openlog/syslog/closelog и не думать об их различиях?
> Различия будут только в настройках системных конфигов?
>
> 2. Насколько системные логгеры подходят для хайлоада? То есть когда в
> лог валят тысячи сообщений в секунду. В гугле смотрел, но ничего
> толкового сходу не нашёл. Если кто сталкивался, поделитесь опытом.




--
Best Regards, Kirill Garbar

Phone: +44 75 009 26 199
ICQ: 307099
http://www.inteliec.eu
Re: Логирование в PHP скрипте
April 13, 2012 04:58PM
Посмотрите на Scribe (https://github.com/facebook/scribe)
Это разработка facebook для ведения логов в их системе.
Думаю, для вашей тоже будет достаточно :)


On 12 апр, 12:55, TheRoSS <achi...@gmail.com> wrote:
> Для fpm есть лог файл, настроенный через конфиг /etc/php5/fpm/pool.d/
> my.conf  на  /var/log/php-fpm-my.log
> В нём поддерживаются различные уровни логирования: от error до debug.
> Есть также мой php скрипт, в котором тоже хотелось бы иметь
> логирование.
>
> Вопрос, могу ли я в своём скрипте использовать этот лог-файл для
> логирования моих событий?
> Пока я нашёл только один способ писать в него. Это через stderr:
> $stderr = fopen('php://stderr', 'w');
> fwrite($stderr, "DEMONbI!!!\n");
>
> При этом в логе появляется длиннющая запись вида:
> [12-Apr-2012 13:27:41.454210] WARNING: pid 23073,
> fpm_stdio_child_said(), line 155: [pool my] child 23075 said into
> stderr: "DEMONbI!!!"
>
> В которой куча лишней информации и всего один уровень логирования,
> WARNING.
> Можно ли использовать лог fpm для логирования событий приложения
> (скрипта) или я должен для него создавать свой собственный отдельный
> лог?
Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 250
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 500 on July 15, 2024
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready