我目前正在使用带有Monolog的Silex Framework作为日志记录机制。通过使用以下组件 - https://github.com/silexphp/Silex-WebProfiler(Silex-WebProfiler),我能够在项目中成功集成默认的Symfony WebProfiler。它很有用,但遗憾的是它无法从 _profiler 页面显示Monolog的日志消息。有人知道如何解决这个问题吗?
这是我的配置,如果它完全相关:
use Silex\Provider;
...
//Monolog
$app->register(new Provider\MonologServiceProvider(), array(
'monolog.logfile' => __DIR__ . '/../log/development.log',
'monolog.name' => 'MyAppName'
));
...
// Web Profiler
if ($app['debug']) {
$app->register(new Provider\WebProfilerServiceProvider(), array(
'profiler.cache_dir' => __DIR__.'/../cache/profiler/',
'profiler.mount_prefix' => '/_profiler', // this is the default
));
}
答案 0 :(得分:6)
我也想知道这一点,我在MonologServiceProvider中找到了这些行。
if ($bridge = class_exists('Symfony\Bridge\Monolog\Logger')) {
$app['monolog.handler.debug'] = function () use ($app) {
return new DebugHandler($app['monolog.level']);
};
}
Symfony Monolog Bridge组件启用了对Web Profiler的日志记录。我将此添加到composer.json
:
"symfony/monolog-bridge": "~2.3"
现在,我在Web Profiler的该面板中看到了日志条目。 (确保monolog-bridge的版本与您在composer.json
中声明的其他Symfony组件的版本一致,这可能是一个好主意。)