cakephp / monolog
2.0.0
2014-08-04 14:44 UTC
Requires
- php: >=5.3.0
- composer/installers: *
- monolog/monolog: 1.7.*
README
CakePHP Monolog 插件
尽管 CakePHP 提供了非常先进的日志系统,但为了能够按照我需要的方式处理日志,我仍然不得不编写大量的代码。为了编写尽可能少的代码,我选择了流行的 Monolog 库。
注意 软件包名称已更改为 jadb/cakephp-monolog,以避免违反 cakephp 命名空间。
安装
因为 monolog 是一个 composer 软件包,为了避免手动编写大量包含(相对于自动加载),我决定也将其作为 composer 软件包发布,并利用自动加载的魔力。
首先,将此插件添加到您的 composer.json
{
"require": {
"cakephp/monolog": "*"
}
}
然后更新
php composer.phar update
就这样!现在您应该已经准备好开始配置您的通道了。
配置
首先创建一个日志配置文件(例如 app/Config/log.php
),您将在 app/Config/bootstrap.php
中早期包含它。
include 'log.php';
一个基本的配置,以复制 Cake 的功能但使用 Monolog(为您提供一个好的起始示例),看起来可能像这样
CakePlugin::load('Monolog');
CakeLog::config('debug', array(
'engine' => 'Monolog.Monolog',
'channel' => 'app',
'handlers' => array(
'Stream' => array(
LOGS . 'debug.log',
'formatters' => array(
'Line' => array("%datetime% %channel% %level_name%: %message%\n")
)
)
)
));
注意,对于 CakePHP 版本 < 2.4,引擎名称应为 Monolog.MonologLog
。
简单吧?但让我们真的做一些严肃的日志记录,否则为什么要离开默认的 CakePHP 日志 系统?
以下示例展示了如何设置
- 保留 30 天的旋转日志,可由 logstash 读取,并包含内存峰值使用信息
- 带有更多请求详细信息的普通日志文件
- 对关键和警报级别的电子邮件通知,仅包括错误消息
CakeLog::config('logstash', array(
'engine' => 'Monolog.Monolog',
'channel' => 'app',
'handlers' => array(
'RotatingFile' => array(
LOGS . 'logstash.log',
30,
'formatters' => array(
'Logstash' => array('web', env('SERVER_ADDR'))
),
'processors' => array('MemoryPeakUsage')
),
'Stream' => array(
LOGS . 'logstash.log',
'formatters' => array(
'Line' => array("%datetime% %channel% %level_name%: %message% %context% %extra%\n")
),
'processors' => array('MemoryUsage', 'Web')
),
'CakeEmail' => array(
'admin@domain.com',
'ALERT: APPLICATION REQUIRES IMMEDIATE ATTENTION.',
'default'
)
)
));
CakeEmailHandler
已于今天提交到主 monolog 存储库。如果您在阅读此内容时它尚未合并,请使用 我的分支。