Monolog сохранить в файл без вывода на консоль

Добро пожаловать,

У меня проблема с поиском ответа о том, как сделать, чтобы журналы Monolog были сохранены только в файл без возврата на консоль. В настоящее время они сохраняются в файл и выбрасываются в консоль.

Я использую это:

Silex 1.3

Моя конфигурация в services.php:

// Register console's input/output for further usage (for example in handlers)
$app['console.input'] = new \Symfony\Component\Console\Input\ArgvInput((array)@$_SERVER['argv']);
$app['console.output'] = new \Symfony\Component\Console\Output\ConsoleOutput();
$app['console.logger_handler'] = new \Symfony\Bridge\Monolog\Handler\ConsoleHandler($app['console.output']);

// Loggers ---------------------------------------------------------------------

$app->register(new \Silex\Provider\MonologServiceProvider(), [
'monolog.name' => $app['monolog.name'], // Would be overidden in provider
'monolog.level' => $app['monolog.level'],
]);

// Attach console handler to default logger
$app['logger']->pushHandler($app['console.logger_handler']);

// Initializes the monolog factory...
$app['monolog.factory'] = $app->protect(function ($name) use ($app) {
$log = new $app['monolog.logger.class']($name);
// FIXME Doesn't check if the values are actually configured
$handler = new \Monolog\Handler\StreamHandler($app["monolog.$name.logfile"], $app["monolog.$name.level"]);

// Custom formatting only when user context is available
if ($app->offsetExists('security.token_storage') && $app->offsetExists('session')) {
$formatter = new \Test\Silex\App\Lib\Monolog\Formatter\UserLineFormatter($app['security.token_storage'], $app['session']);
$handler->setFormatter($formatter);
}

$log->pushHandler($handler);
// Add console handler only if not disabled
if (
!$app->offsetExists("monolog.$name.skip_console_handler") ||
true !== $app["monolog.$name.skip_console_handler"]
) {
$log->pushHandler($app['console.logger_handler']);
}

return $log;
});

// ... and creates the loggers
foreach (['actions', 'error'] as $channel) {
$app["monolog.$channel"] = $app->share(function (TestApplication $app) use ($channel) {
return $app['monolog.factory']($channel);
});
}

Вот кусок кода от глобального. PHP:

$config = [
'monolog.name' => 'test_app',
'monolog.level' => \Monolog\Logger::INFO,
'monolog.logfile' => __DIR__ . '/../../var/logs/app.log',

'monolog.error.logfile' => __DIR__ . '/../../var/logs/error.log',
'monolog.error.level' => \Monolog\Logger::WARNING,

'monolog.actions.logfile' => __DIR__ . '/../../var/logs/actions.log',
'monolog.actions.level' => \Monolog\Logger::DEBUG,
];

0

Решение

Задача ещё не решена.

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector