logging - 如何在 Silex 中为 Monolog 设置不同的文件

标签 logging silex channel monolog

主题。我想在不同的文件中记录一些信息,在搜索 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/

相关文章:

logging - 会在heroku部署日志中删除..

php - 无需翻译的 Silex 表单验证

http - 在 http 处理程序中使用 goroutine 和 channel

matrix - 从 ldpc 奇偶校验矩阵生成生成器矩阵

python - 日志记录和 CherryPy 可以共享相同的配置文件吗?

php - 如何监控MySQL查询

tomcat - 通过 logback/sl4j 进行嵌入式 Tomcat 日志记录

php - session 过期时响应 HTTP_UNAUTHORIZED/Redirect

http - 如何使用 HTTPie 发送 POST 请求?

WCF 回调 channel 出现故障