2016-12-13 1 views
5

Cascade 'Monolog을 사용하고 YAML을 사용하여 로거를 구성하십시오. 이것은 내 설정의 일부입니다 : Monolog Formatter LineFormatter의 밀리 초 (PHP)

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

이있는 형식의 로그 행 : 밀리 초와 타임 스탬프를 얻을 수 \Monolog\Formatter\LineFormatter에 적합한 format 값이 무엇

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

?

답변

0

내 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"