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