serhii/tiny-logger

轻量级的PHP7文件日志记录器包。

2.1.4 2023-11-14 19:12 UTC

README

Tiny Logger Latest Stable Version Total Downloads License Minimum PHP Version

轻量级Composer包,支持文件日志记录,并能通过webhook发送错误。

使用示例

设置文件路径

要为所有日志文件设置全局路径,您可以在启动文件中调用setPath方法。

use Serhii\TinyLogger\Logger;

Logger::setPath('logs/errors.log'); // simple format
Logger::setPath('logs/%s.log', 'errors'); // sprintf format

注意:如果您想在cron脚本或WordPress钩子中使用日志记录器,您需要在脚本执行的非常开始时调用setPath(),这意味着您的项目可能需要设置多个日志路径的地方。如果您不想调用setPath(),您可以直接将路径作为第三个参数传递给tiny_log()函数。请参见使用部分中的示例。

支持的PHP版本

  • ✅ 7.2
  • ✅ 7.3
  • ✅ 7.4
  • ✅ 8.0
  • ✅ 8.1
  • ✅ 8.2
  • ✅ 8.3

使用

此包包含一个名为tiny_log()的函数,其中第二个和第三个参数不是必需的。

tiny_log('Some error message');
// Output in file: [2020-01-12 04:09:16] error: Some error message.

tiny_log('Some error message', 'info');
// Output in file: [2020-01-12 04:09:16] info: Some error message.

tiny_log('Some error message', 'debug', 'logs/debug.log');
// If you don't need to set path globally, just pass file path as the third argument to the tiny_log function .

您也可以使用Logger类。它将执行与使用函数相同的功能。

use \Serhii\TinyLogger\Logger;

Logger::new()->error('Some error message');
Logger::new()->info('Some info message');
Logger::new()->debug('Some error message');

选项

要使用可用的选项之一,您可以选择性地将某些标志传递给tiny_log()函数作为第二个参数。如果您还需要传递错误类型,请使用竖线|分隔它们。请参见具有选项pos的示例

tiny_log('Some error message', 'pos'); // just passing option
tiny_log('Some error message', 'pos|error'); // 'pos' option with error type 'error'
tiny_log('Some error message', 'pos|info'); // 'pos' option with error type 'info'

可用选项

  • pos - 显示日志记录器的位置。在哪个文件以及行号上。这在调试时很有用,以防忘记放置日志记录器。请参见输出示例
[2020-01-12 04:09:16] info: Some log message goes here
>>> /var/www/html/app/Services/App.php on line: 77.

通过POST请求发送日志

Small logger允许您将日志作为json对象发送到特定的端点。要启用此选项,您需要调用enablePostRequest方法。要禁用POST请求,请使用disablePostRequest方法。

use Serhii\TinyLogger\Logger;

Logger::enablePostRequest('http://my-site.com/webhook');

现在如果发生错误,json将通过POST请求发送到http://my-site.com/webhook端点。

{
    "timestamp": "1611675632",
    "message": "Undefined variable at line 24 in \\App\\Models\\User class.",
    "type": "error"
}

如果您需要自定义json对象结构,可以将数组作为第二个参数传递给enablePostRequest方法。

use Serhii\TinyLogger\JsonFieldValue;
use Serhii\TinyLogger\Logger;

Logger::enablePostRequest('http://my-site.com/webhook', [
    'time' => JsonFieldValue::TIMESTAMP,
    'errorMessage' => 'Error message: ' . JsonFieldValue::MESSAGE,
    'errorType' => JsonFieldValue::ERROR_TYPE,
    'token' => getenv('MY_AUTH_TOKEN')
]);

现在您将得到这样的json

{
    "time": "1611675632",
    "errorMessage": "Error message: Undefined variable at line 24 in \\App\\Models\\User class.",
    "errorType": "error",
    "token": "29d62x7g656e6f9"
}

每个JsonFieldValue常量将被其值替换。例如,JsonFieldValue::MESSAGE将被错误消息替换。JsonFieldValue::TIMESTAMP将被错误时间戳替换。

注意:如果您想在cron脚本或WordPress钩子中使用日志记录器,您需要在脚本执行的非常开始时调用enablePostRequest

开始使用

要安装所有PHP依赖项,您需要在您的机器上安装Composer PHP包管理器。然后您需要在项目的根目录中运行以下命令。

composer require serhii/tiny-logger