ведение журнала — миллисекунды в \ Monolog \ Formatter \ LineFormatter (PHP)

я использую каскадный«изд Монолог и настройте регистраторы, используя YAML. Это часть моего конфига:

formatters:
dashed:
class: Monolog\Formatter\LineFormatter
format: "%datetime%-%channel%.%level_name% - %message%\n"

Это отформатированная строка журнала:

2016-12-13 17:49:16-app.INFO - <message>

Что правильно format значение для \Monolog\Formatter\LineFormatter получить метку времени с миллисекундами?

5

Решение

В моем проекте Symfony 2.6 у меня есть собственный обработчик журналов, поэтому я реализовал журнал как службу, если он может помочь, вот фрагмент кода объявления service.yml; если вы посмотрите на logger_formatter, вторым аргументом конструктора класса является формат даты:

mybundle.logger:
class:     Symfony\Bridge\Monolog\Logger
arguments: [mybundle] # channel
calls:
- [pushHandler, [@mybundle.logger_handler]]
- [pushProcessor, [@mybundle.logger_processor]]

mybundle.logger_processor:
class:     myBundle\Logging\LogProcessor
arguments:  ["@session"]

mybundle.logger_handler:
class:     myBundle\Logging\myBundleRotatingFileHandler #Monolog\Handler\RotatingFileHandler
arguments: ["@session", %kernel.logs_dir%/LOGGER_SID/%kernel.environment%.mybundle.log, 0, 400] #DEBUG = 100; INFO = 200; NOTICE = 250; WARNING = 300; ERROR = 400; CRITICAL = 500; ALERT = 550; EMERGENCY = 600;
calls:
- [setFormatter, [@mybundle.logger_formatter]]
- [setFilenameFormat, ['{filename}','Y-m-d']]

mybundle.logger_formatter:
class: Monolog\Formatter\LineFormatter
arguments:
- "[%%datetime%%]\t%%extra.remote_addr%%\t%%level_name%%\t%%message%%\t%%extra.request_uri%%\n"- "Y-m-d H:i:s.u"
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]