Silex - 只记录到 Monolog ErrorLogHandler
Silex - only log to Monolog ErrorLogHandler
我想使用 Monolog 将所有内容记录到网络服务器(apache 的)错误日志中——与使用 error_log() 一样。
但是,如果我按如下方式设置日志记录:
$app->register(new Silex\Provider\MonologServiceProvider(), array(
'monolog.logfile' => sys_get_temp_dir().'/app.log'
));
$app['monolog'] = $app->share($app->extend('monolog', function($monolog, $app) {
$monolog->pushHandler(new ErrorLogHandler(ErrorLogHandler::OPERATING_SYSTEM, Logger::WARNING));
return $monolog;
}));
所有内容都记录到 /tmp/app.log 和 warning+ 到 apache 错误日志。这里的日志级别并不真正相关,我希望能够仅登录到 apache 日志(主要是为了对 logrotation 的开箱即用支持)。
我想有两个选择:
- 已经为 MonologServiceProvider monolog.logfile 使用了正确的路径(我可以在 apache vhost 配置中使用 'php_value error_log' 定义它,然后使用 ini_get('error_log') 我想,虽然我更喜欢一些不需要我向 vhost 文件添加额外条目的其他解决方案)
- 以某种方式覆盖原始日志记录配置(http://silex.sensiolabs.org/doc/providers/monolog.html#customization 确实提到更改处理程序但没有给出如何更改的示例)
不附加您的错误日志处理程序,您 overwrite the default handlers 只使用那个怎么样?
$app['monolog'] = $app->share($app->extend('monolog', function($monolog, $app) {
$monolog-> setHandlers([new ErrorLogHandler(ErrorLogHandler::OPERATING_SYSTEM, Logger::WARNING)]);
return $monolog;
}));
我想使用 Monolog 将所有内容记录到网络服务器(apache 的)错误日志中——与使用 error_log() 一样。
但是,如果我按如下方式设置日志记录:
$app->register(new Silex\Provider\MonologServiceProvider(), array(
'monolog.logfile' => sys_get_temp_dir().'/app.log'
));
$app['monolog'] = $app->share($app->extend('monolog', function($monolog, $app) {
$monolog->pushHandler(new ErrorLogHandler(ErrorLogHandler::OPERATING_SYSTEM, Logger::WARNING));
return $monolog;
}));
所有内容都记录到 /tmp/app.log 和 warning+ 到 apache 错误日志。这里的日志级别并不真正相关,我希望能够仅登录到 apache 日志(主要是为了对 logrotation 的开箱即用支持)。
我想有两个选择:
- 已经为 MonologServiceProvider monolog.logfile 使用了正确的路径(我可以在 apache vhost 配置中使用 'php_value error_log' 定义它,然后使用 ini_get('error_log') 我想,虽然我更喜欢一些不需要我向 vhost 文件添加额外条目的其他解决方案)
- 以某种方式覆盖原始日志记录配置(http://silex.sensiolabs.org/doc/providers/monolog.html#customization 确实提到更改处理程序但没有给出如何更改的示例)
不附加您的错误日志处理程序,您 overwrite the default handlers 只使用那个怎么样?
$app['monolog'] = $app->share($app->extend('monolog', function($monolog, $app) {
$monolog-> setHandlers([new ErrorLogHandler(ErrorLogHandler::OPERATING_SYSTEM, Logger::WARNING)]);
return $monolog;
}));