serhii / tiny-logger
轻量级的PHP7文件日志记录器包。
Requires (Dev)
- laravel/pint: dev-main
- phpstan/phpstan: ^1.8
- phpunit/phpunit: ^8.0
- sandfoxme/private-access: ^1.3
- squizlabs/php_codesniffer: ^4.0
- symfony/var-dumper: ^4.2
- dev-main
- v2.1.4.x-dev
- 2.1.4
- v2.1.3.x-dev
- 2.1.3
- v2.1.2.x-dev
- 2.1.2
- 2.1.1.x-dev
- 2.1.1
- v2.1.0.x-dev
- v2.1.0
- v2.0.x-dev
- 2.0
- v1.4.x-dev
- v1.4.2.x-dev
- 1.4.2
- v1.4.1.x-dev
- 1.4.1
- 1.4.0
- v1.3.x-dev
- v1.3.5.x-dev
- 1.3.5
- v1.3.4.x-dev
- 1.3.4
- v1.3.3.x-dev
- 1.3.3
- v1.3.2.x-dev
- 1.3.2
- v1.3.1.x-dev
- 1.3.1
- 1.3
- v1.2.x-dev
- v1.2.2.x-dev
- 1.2.2
- v1.2.1.x-dev
- 1.2.1
- 1.2
- v1.1.x-dev
- 1.1
- 1.0
This package is auto-updated.
Last update: 2024-09-14 20:55:58 UTC
README
轻量级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