PSR-3 日志接口规范 本文制定了日志类库的通用接口规范。 本规范的主要目的,是为了让日志类库以简单通用的方式,通过接收一个 Psr\Log\LoggerInterface 对象,来记录日志信息。
3 PSR-3, PSR-7 在自动加载和编码标准之后,我们最终可以将PSR与php代码关联起来。这就需要通过PSR-3和PSR-7。 PSR-3包含日志接口,PSR-7包含http消息接口的接口。 PSR-3: php迫切需要PSR-3之前的日志接口标准。日志记录在开发中是常见的需求,所以每个项目都构建了自己的日志记录版本。 PSR-3为日志库提供了通用接口。只要它们实现了PSR-3日志接口,理论上它们应该可以与任何其他PSR-3日志记录库互换。 让我们在一个具体的例子中看看PSR-3日志器接口如何提高代码的可重用性。 我们可以修改代码,使用PSR-3日志接口来替代。根据依赖倒置原理(SOLID),我们应该依赖抽象而不是具体化。PSR-3记录器接口为我们的案例提供了一个完美的抽象。 与PSR-3类似,PSR-7使我们的开发更容易构建可重用的代码库。 4 PSR规范 我们已经简要地总结了每个PSR规范,现在您应该了解每个PSR规范的用途。
- yiisoft/log - PSR-3 适应 Psr-3的 logging library. 更多的 PSR 兼容: PSR-3, PSR-11, PSR-16 框架核心只需要虚拟PSR实现包,您可以自由选择日志记录器和缓存实现。 更多PSR实现的兼容性预计将在稍后实现。
1、PSR-1 (BasicCoding Standard) 基础编码标准 2、PSR-2(Coding Style Guide) 编码风格向导 3、PSR 例如: if($x==1) { //…. } 五、PSR-3 PSR-3定义了一组对象,称之为日志记录器。 1、实现符合PSR-3标准的日志 首先,不推荐自己去实现,除非是专门开发日志的开发组。
这里顺便把基本的规范写一下 至今,php-fig已经发布了五个规范: PSR-0:自动加载标准,2014-10-21该标准已经被废弃,使用PSR-4替代,不再细讲 PSR-1:基本的编码风格 PSR-2:编码风格(更严格) PSR PSR-2: Coding Style Guide has been deprecated PSR-3 与PSR-1和PSR-2不同,PSR-3规定了一套通用的日志记录器接口(Psr\Log\LoggerInterface ),为了符合PSR-3规范,框架必须实现该规范中的接口,这样可以更多的兼容第三方应用。 PSR-3规范中包含了9个方法,每个方法都对应了RFC 5424协议的一个日志级别,而且都接受两个参数message和context,如下: <? 如果 PSR-3日志记录器的使用 推荐使用monolog/monolog,这样可以让我们不需要浪费更多的时间在编写一个日志记录器了。
logs to files, sockets, inboxes, databases and various web services", "keywords": ["log", "logging", "psr description":"Common interface for logging libraries", "keywords":[ "log", "psr", "psr description":"Common interface for logging libraries", "keywords":[ "log", "psr", "psr description":"Common interface for logging libraries", "keywords":[ "log", "psr", "psr description":"Common interface for logging libraries", "keywords":[ "log", "psr", "psr
即系列推荐标准:目前通过的规范有PSR-0(Autoloading Standard)、PSR-1(Basic Coding Standard)、PSR-2(Coding Style Guide)、PSR 在结构控制关键字的后面必须有一个空格;而方法和函数调用时后面不可有空格 结构控制的左花括号必须跟其放在同一行,右花括号必须放在该结构控制代码主体的下一行 控制结构的左括号之后不可有空格,右括号之前也不可有空格 PSR -3(Logger Interface) PSR-3是对应用日志类的通过接口的定义(原文:官网、GitHub)。
目前官方已制定的规范包括以下六份文件: PSR-0 (已弃用) PSR-1 PSR-2 PSR-2补充 PSR-3 PSR-4 2014/04/25 添加PSR-2 PSR-1 基本代码规范 PSR-2 代码风格规范 PSR-2-1 补充文档 PSR-3 日志接口规范 PSR-4 自动载入 我们希望你贡献的代码符合: ThinkPHP
完善的消息确认机制 智能重试 - 可配置的重试次数和延迟策略 消息重放 - 支持重新处理历史消息 消息审计 - 提供只读模式审计所有消息 完整测试 - 69个测试,244个断言,100%通过率 PSR -3 日志 - 标准 PSR-3 日志接口 ️ 单例模式 - 单例模式支持,避免重复创建实例 环境要求 PHP >= 7.4 Redis >= 5.0 Composer >= 2.0 ext-redis
支持 依赖注入完善和支持更多场景 重构的(对象化)路由 路由跨域请求支持 支持注解路由 配置和路由目录独立 取消系统常量 助手函数增强 类库别名机制 模型和数据库增强 验证类增强 模板引擎改进 支持 PSR
框架的结构也进行了大量的调整, 更多的 PSR 兼容: PSR-3, PSR-11, PSR-16 框架核心只需要虚拟PSR实现包,您可以自由选择日志记录器和缓存实现。
PSR-3 (Logger Interface) 日志接口 5. PSR-4 (Improved Autoloading) 自动加载优化标准 之后,在此标准之上,Composer 横空出世!
1 基础编码规范 PSR-1 2 编码风格规范 PSR-2 3 日志接口规范 PSR-3 4 自动加载规范 PSR-4 6 缓存接口规范 PSR-6 7 HTTP 消息接口规范 ---- 基础编码规范
毫无疑问,规范的日志对于运维和开发排查问题有非常大的帮助,例如PHP项目日志格式可以规范为时间,日志级别,日志内容(比如对于连接多个DB时出现连接不上或超时应该把实例地址一同写入日志),可以参考psr -3的标准 : http://www.php-config.org/psr/psr-3 通过ELK将业务日志,PHP自身错误日志/慢日志,Nginx慢日志等进行搜集统计并结合Zabbix实现报警
通过权限认证'; } else { echo '对不起,您没有该资源访问权限'; } 启动webman,请求访问结果 自定义日志 v2.0.0 版本日志支持PSR-3 标准接口\Psr\Log
符合PSR标准:与标准PHP接口无缝集成: PSR-3(LoggerInterface):可使用自己的日志记录器(例如Monolog)。 ->withLogger(LoggerInterface $logger): self:提供一个符合PSR-3标准的日志记录器实现。
如果控制结构关键字后面有一对括号,起始圆括号后面不能有空格,结束圆括号之前不能有空格;与类和方法的定义体不同,控制结构关键字后面的其起始括号应该和控制结构关键字写在同一行,控制结构关键字后面的结束括号必须单独写在一行 PSR -3 日志记录器接口 Monolog组件完全实现了PSR-3接口,而且便于使用自定义的消息格式化程序和处理程序扩展功能 PSR-4 自动加载器 自动加载器策略是指:在运行时按需查找php类、接口或性状
something } /** * 正确的示例: **/ if (1 == true) { // do something } else { // do something } PSR 例如:开发的时候把调试信息写入到文本文件,把网站的流量统计信息记录到数据库等 PSR-3 规范出来之后,达到这种效果的组件太多了,这里就不介绍,如何实现这个接口的类了 PSR-4:自动加载规范 PSR-
这意味着你可以使用任何符合PSR-3规范的日志器,或者造一个自己的。
PSR-3 (Logger Interface) 日志接口。 PSR-4 (Improved Autoloading) 自动加载的增强版,可以替换掉 PSR-0 了。