jitesoft/wp-logger

WordPress 实际的日志记录器。

1.4.0 2022-08-15 19:45 UTC

This package is auto-updated.

Last update: 2024-09-16 00:27:04 UTC


README

WordPress 实际的日志记录器。

此插件执行两项操作。它依赖于内部 php 日志记录器(通过 set_error_handler)并为您创建一个 PSR 日志记录器!

更详细

当插件在 WordPress 中完全加载后,它将触发 jitesoft_logger_loaded 动作,回调函数将传递全局日志记录器对象。
如果您 知道 插件已加载,您也可以使用 jitesoft('logger') 函数来请求日志记录器实例。如果它尚未加载,则函数将返回 null

$logger = jitesoft('logger'); // null if not lodaed
add_action('jitesoft_logger_loaded', static fn($logger) => $logger); // will not be null when loaded.

弃用通知,以下将在下一个主要版本中删除

您也可以通过 GlobalLogger 类通过 logger() 方法获取日志记录器。

Jitesoft\WordPress\Plugins\Logger\GlobalLogger;

$logger = GlobalLogger::logger();

自动加载

插件需要自动加载才能正常工作。如果没有自动加载器,插件将无法找到它使用的库,因此不会创建日志记录器。

配置

插件当前通过环境变量或定义进行配置。必须在加载插件之前定义值,因此 wp-config.php 文件或实际环境变量是放置这些值的最佳位置。

WP_LOGGER_OVERRIDE 默认设置为覆盖,可以更改为 disable 覆盖内部 php 日志记录器。

WP_ENV 设置日志记录器的默认日志级别

  • production:错误及以上
  • staging:信息及以上
  • development:调试及以上

如果您希望手动更改日志级别,可以将 WP_LOGGER_LEVEL 设置为适当的级别,以下是被接受的: debugnoticeinfowarningerrorcriticalalertemergency

您还可以通过触发 jitesoft_log_level 钩子并传递一个带有上述日志级别值的单个字符串参数来更改日志级别。

格式化

目前,日志记录器支持两种默认类型: jsonstdout
它们可以通过 WP_LOGGER_FORMAT 变量设置(默认为 stdout)。
这两种类型都会输出到 stdout/stderr 通道(终端),同时它们将生成纯文本日志或 json 格式的日志。

如果您希望更改日志对象上的日志记录器,可以通过查询日志记录器并从其中添加(或删除)日志记录器来完成。可以添加多个日志记录器。

jitesoft('logger')->removeLogger('stdout');
jitesoft('logger')->removeLogger('json');

jitesoft('logger')->addLogger(new MyPsrLogger(), 'myLogger');

或在钩子中直接进行

add_action('jitesoft_logger_loaded', static function($logger) {
    $logger->removeLogger('stdout');
    $logger->removeLogger('json');
    $logger->addLogger(new MyPsrLogger(), 'myLogger');
});

安装

使用基于 composer 的 WordPress 安装并要求此插件。

日志记录器

如果您想添加更多日志记录器,该包依赖于 jitesoft/loggers php 包,其中包含多个不同的日志记录器。
如果您想使用您自己的日志记录器,则日志记录器必须实现 PSR-3 日志记录器 接口。

许可证

MIT!