主题。我想在不同的文件中记录一些信息,在搜索 Symfony 2 的很多示例中,但我使用 Silex 和 yaml 配置。如何设置呢?
# console logging options
monolog.logfile: '/var/log/daemon.log'
monolog.level: error
monolog.name: 'daemon'
我当前的配置
最佳答案
您需要添加一个额外的提供程序来使其像这样(我只是从头开始编写,所以,我希望我会工作):
config.yaml:
monolog.extra.logfile: '/var/log/other.log'
monolog.extra.level: error
扩展MonologProvider.php:
<?php
use Silex\ServiceProviderInterface;
use Silex\Application;
use Silex\Provider\MonologServiceProvider;
class ExtendedMonologProvider implements ServiceProviderInterface {
public function register(Application $app) {
$app->register(new MonologServiceProvider());
$app['monolog.extra.handler'] = function () use ($app) {
return new StreamHandler($app['monolog.extra.logfile'], $app['monolog.extra.level']);
};
$app['monolog'] = $app->share($app->extend('monolog', function($log, $app) {
$log->pushHandler($app['monolog.extra.handler']);
return $log;
}));
}
public function boot(Application $app) { }
}
关于logging - 如何在 Silex 中为 Monolog 设置不同的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15657355/