Лог темы в PHP - PullRequest
       40

Лог темы в PHP

0 голосов
/ 26 марта 2009

Недавно я столкнулся с такой проблемой. Я работаю над приложением, в котором ведение журнала очень важно.

Под логами в этом приложении я имею в виду сообщения типа

  • Пользователь A (id = x) создал счет-фактуру (номер счета-фактуры - XXX) (1)
  • Пользователь B (id = y) купил книгу (2)
  • Пользователь A (id = x) утвердил счет XXX (3)

(1) и (3) являются сообщениями одного конкретного запроса / команды - поэтому, когда я хочу просмотреть журналы, мне нужно получить всю информацию об этом потоке журнала запросов.

Поскольку приложение сильно загружено и часто использует AJAX, сообщения журнала разных пользователей / операций / запросов могут быть смешанными.

Временно, я исправил эту проблему следующим образом:

Я создал в начале запроса некоторый уникальный код UUID и добавляю любые сообщения журнала с этим уникальным кодом. Итак, я могу найти все сообщения определенного потока с помощью простой команды grep UNIX.

Это решает проблему, но я не уверен, что это лучшее решение для этой задачи. Больше похоже на изобретение колеса. Какие решения вы бы порекомендовали для этой проблемы?

Ответы [ 3 ]

1 голос
/ 26 марта 2009

Если вам нужно просмотреть все журналы для определенного сеанса пользователя, используйте

session_start()

вверху вашего скрипта (ов) и затем добавьте

session_id()

в начало каждого сообщения журнала.

1 голос
/ 26 марта 2009

От макушки головы, пара предложений (если вы их еще не реализовали)

  1. Записывать каждый другой тип события в отдельный файл журнала, например, BookPurchases.log, InvoiceApprovals.log. Тем не менее, сохраняйте необработанный журнал вывода всего, на случай, если важна последовательность событий, а не классификация.

  2. Используйте пакет журнала, если у вас его еще нет, например: Пакет журнала или Zend_Log , где вы можете иметь разные приоритеты ведения журнала.

Я не знаю, бесполезно ли это для вас, поскольку то, что вы сказали, кажется довольно убедительным.

0 голосов
/ 26 марта 2009

Фактическим стандартом регистрации в мире Java на протяжении многих лет является log4j. Это было перенесено на ряд других языков log4Net, log4Ruby и log4Php

Я никогда не использовал log4php, но если он реализует те же шаблоны / алгоритмы, что и другие фреймворки, он наверняка сделает вашу работу.

Я не буду утверждать, что это лучше, чем любой из вариантов, рекомендованных karim79, только потому, что он соответствует проверенному дизайну.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...