Приветствую.
Вопрос знатокам Symfony 3, а именно версии 3.4.
Создал консольную команду и пытаюсь вывести логи в отдельный файл. Сейчас логи выводятся в консоли и автоматически сохраняются в var/logs/prod.log, а мне хотелось бы разделить их, например в файл import.log
Я так понимаю, нужно в конфетах системы указать нужный путь для записи логов. Перепробовал много вариантов из документации, но ни один так и не заработал. Не понимаю, куда и каким образом нужно вписать настройки.
Прошу помощи кто знает как это сделать.
Код:
<?php
namespace AppBundle\Command;
use AppBundle\Logger\MyDependency;
use AppBundle\Upload\Import;
use AppBundle\Upload\Settings;
use AppBundle\Upload\Utility;
use Monolog\Handler\StreamHandler;
use Monolog\Logger;
use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
use Symfony\Component\Console\Logger\ConsoleLogger;
use Symfony\Component\Console\Style\SymfonyStyle;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
class ImportCommand extends ContainerAwareCommand
{
protected function configure()
{
$this
->setName('app:import-products')
->setDescription('Good morning!');
}
protected function execute(InputInterface $input, OutputInterface $output)
{
$logger = $this->getContainer()->get('logger');
$logger->error('Your error message');
$logger->alert('Your alert');
$logger->debug('Your debug message', ['foo' => 'bar']); // additional context information
$logger->log('error','Put this in the log file');
}
}
Структура папки с конфигами
Код настроек
Пробовал в config.yml, config_prod.yml
monolog:
handlers:
# ...
console:
type: console
process_psr_3_messages: false
channels: ['!event', '!doctrine', '!console']
nested:
type: stream
path: "%kernel.logs_dir%/%kernel.environment%test.log"
level: debug
Пробовал в services.yml
services:
# default configuration for services in *this* file
_defaults:
# automatically injects dependencies in your services
autowire: true
# automatically registers your services as commands, event subscribers, etc.
autoconfigure: true
# this means you cannot fetch services directly from the container via $container->get()
# if you need to do this, you can override this setting on individual services
public: false
AppBundle\Command\ImportCommand:
arguments:
$logger: '@logger'
tags:
- { name: monolog.logger, channel: application_logger }