控制台命令:将数据记录到特定文件(Symfony 3 和 monolog)
console command: log data to a specyfic file (Symfony3 and monolog)
我有一个控制台命令作为服务。
我想记录一下,该命令是在一个名为 foo.log 的日志文件中执行的 - 没有其他日志可以放在那里。
我差不多完成了,但是:
在 案例 A 中,我将所有日志都保存到我的特定文件中(不仅是我想要的那个)
在 case B 中,我将我的特定日志记录到 foo.log 文件,但是当 运行 consol 命令时,我在控制台屏幕上看到其他日志。
命令文件
class A extends command
{
(...)
protected function execute(InputInterface $input, OutputInterface $output)
{
(...)
$this->logger->info('done it');
}
}
services.yml
sender.command.fetch.and.send:
class: ReportsBundle\Command\SendReports
arguments:
- "@sender.reports.worker"
- "@logger"
tags:
- { name: console.command }
- { name: monolog.logger, channel: sender}
案例 A (config.yml) - 当我将所有日志获取到 foo.log
monolog:
handlers:
sender:
type: stream
path: '%kernel.logs_dir%/foo.log'
channels: ~
案例 B (config.yml) 当我在屏幕上看到不需要的日志时
monolog:
channels: ['sender']
handlers:
sender:
type: stream
path: '%kernel.logs_dir%/foo.log'
channels: sender
不需要的日志:
(...)
[2016-10-11 20:48:28] doctrine.DEBUG: SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED [] []
[2016-10-11 20:48:28] doctrine.DEBUG: [] []
[2016-10-11 20:48:28] event.DEBUG: Notified event "{event}" to listener "{listener}". {"event":"console.exception","listener":"Staffim\RollbarBundle\EventListener\RollbarListener::onConsoleException"} []
(...)
我相信你只需要降低你的冗长级别
# app/config/config.yml
monolog:
handlers:
console:
type: console
verbosity_levels:
VERBOSITY_NORMAL: NOTICE
channels: sender
我有一个控制台命令作为服务。 我想记录一下,该命令是在一个名为 foo.log 的日志文件中执行的 - 没有其他日志可以放在那里。
我差不多完成了,但是:
在 案例 A 中,我将所有日志都保存到我的特定文件中(不仅是我想要的那个)
在 case B 中,我将我的特定日志记录到 foo.log 文件,但是当 运行 consol 命令时,我在控制台屏幕上看到其他日志。
命令文件
class A extends command
{
(...)
protected function execute(InputInterface $input, OutputInterface $output)
{
(...)
$this->logger->info('done it');
}
}
services.yml
sender.command.fetch.and.send:
class: ReportsBundle\Command\SendReports
arguments:
- "@sender.reports.worker"
- "@logger"
tags:
- { name: console.command }
- { name: monolog.logger, channel: sender}
案例 A (config.yml) - 当我将所有日志获取到 foo.log
monolog:
handlers:
sender:
type: stream
path: '%kernel.logs_dir%/foo.log'
channels: ~
案例 B (config.yml) 当我在屏幕上看到不需要的日志时
monolog:
channels: ['sender']
handlers:
sender:
type: stream
path: '%kernel.logs_dir%/foo.log'
channels: sender
不需要的日志:
(...)
[2016-10-11 20:48:28] doctrine.DEBUG: SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED [] []
[2016-10-11 20:48:28] doctrine.DEBUG: [] []
[2016-10-11 20:48:28] event.DEBUG: Notified event "{event}" to listener "{listener}". {"event":"console.exception","listener":"Staffim\RollbarBundle\EventListener\RollbarListener::onConsoleException"} []
(...)
我相信你只需要降低你的冗长级别
# app/config/config.yml
monolog:
handlers:
console:
type: console
verbosity_levels:
VERBOSITY_NORMAL: NOTICE
channels: sender