cakephp/monolog

此软件包已被废弃,不再维护。作者建议使用 jadb/cakephp-monolog 软件包。

CakePHP Monolog 插件

安装数: 111 342

依赖者: 0

推荐者: 0

安全: 0

星标: 55

关注者: 3

分支: 14

开放问题: 3

类型:cakephp-plugin

2.0.0 2014-08-04 14:44 UTC

This package is auto-updated.

Last update: 2019-12-27 15:20:18 UTC


README

Build Status

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 存储库。如果您在阅读此内容时它尚未合并,请使用 我的分支