php-unified / log
PHP 日志标准。
Requires
- php: ^8.0
Requires (Dev)
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.5
README
PHPUnified Log
此包提供PHP日志的标准。包的目的是创建一个多用途的标准。
请注意,此包只包含实现接口和非日志实现。
安装
composer require php-unified/log
使用方法
提供的接口
PhpUnified\Log\Common\LoggerInterface
此接口为将日志器实现到应用程序提供标准。它公开了三个函数。
log
此函数用于记录消息并带有严重性指示。严重性指示可以从中选择接口中定义的常量。
常量
此类中的常量可用于确定日志的严重性。
EMERGENCY
系统已无法使用。多个系统组件已停止工作。
FATAL
致命错误是应用程序的完全失败。应立即采取措施。很可能是没有采取行动就无法继续正常操作。用户体验完全中断。
ERROR
错误是应用程序中的重大失败。这些类型的错误应优先考虑。正常操作可以继续,但可能会再次中断。用户体验受到了影响。
WARNING
警告是应用程序中可能发生的失败。正常操作可以继续,但底层问题可能导致更严重的其他问题。最有可能的是,用户体验没有受到影响。
NOTICE
通知是应用程序中的小干扰。正常操作是可能的。但是,如果不处理警告,可能会产生不利影响。
INFO
这些日志旨在提供有关系统的信息。例如,哪些进程已运行。
DEBUG
记录供开发者使用的信息。例如,性能统计信息。
PhpUnified\Log\Common\OptionalLoggingInterface
此接口为可选记录信息的实现提供标准。在生产环境中记录较少信息时,这可能很有用,而在开发环境中则不是这样。
PhpUnified\Log\Common\TransitLoggerInterface
此接口为多日志器提供标准。此接口的实现应将多个其他 LoggerInterface 实现作为透传处理。如果日志应存储在多个位置或以不同格式,这可能很有用。
对于此接口,已提供实现。请参阅:PhpUnified\Log\TransitLogger。
需要日志记录器
要创建需要日志记录器的实现,请实现以下代码片段
namespace YourOrganization\YourPackage; use PhpUnified\Log\Common\LoggerInterface; class YourClass { /** * @var LoggerInterface */ private $logger; /** * Constructor * * @param LoggerInterface $logger */ public function __construct(LoggerInterface $logger) { $this->logger = $logger; } /** * The description of my function. * * @return void */ public function myFunction(): void { //some code $this->logger->log(LoggerInterface::WARNING, 'Something non-severe happened.'); } }
可选日志记录器
要创建可以可选记录信息的实现,请实现以下代码片段
namespace YourOrganization\YourPackage; use PhpUnified\Log\Common\OptionalLoggingInterface; use PhpUnified\Log\Common\LoggerInterface; class YourClass implements OptionalLoggingInterface { /** * @var LoggerInterface */ private $logger; /** * Optionally set a logger after instantiation. * * @param LoggerInterface $logger * * @return void */ public function setLogger(LoggerInterface $logger): void { $this->logger = $logger; } /** * The description of my function. * * @return void */ public function myFunction(): void { //some code if ($this->logger !== null) { $this->logger->log(LoggerInterface::WARNING, 'Something non-severe happened.'); } } }
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG。
贡献
有关详细信息,请参阅 CONTRIBUTING 和 CODE_OF_CONDUCT。
MIT 许可证
版权所有 (c) GrizzIT
本软件及其相关文档文件(以下简称“软件”)的副本获取者,在此获得免费许可,可以在不受限制的情况下处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许向软件提供者授予此类权限的人这样做,但须遵守以下条件:
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何形式的保证,无论是明示的还是隐含的,包括但不限于适销性、特定用途的适用性和非侵权性。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论是在合同行为、侵权行为或其他情况下,这些索赔、损害或其他责任源于、源于或与软件或软件的使用或其他处理有关。