silalahi / slim-logger
此包的最新版本(dev-master)没有可用的许可证信息。
为 Slim 框架 3 的文件日志写入类和中间件
dev-master
2016-10-31 06:34 UTC
Requires
- psr/http-message: ^1.0
This package is not auto-updated.
Last update: 2024-09-14 19:14:39 UTC
README
为 Slim 框架的文件日志写入。日志库可以作为类库(注入)或中间件在 Slim 框架 3 应用中使用。日志库由 Slim-Logger 创建,并受到 Gin 日志的启发
安装
您可以通过 composer 安装 Logger。
$ composer require silalahi/slim-logger --dev dev-master
需要 Slim 框架 3 和 PHP 5.5.0 或更高版本。访问 Logger 仓库在 Packagist。
用法
类库
要将 Logger 作为类库使用,您可以将 Logger 实例注入到 Slim 容器中。
<?php require "vendor/autoload.php"; // Don't forget to set timezone date_default_timezone_set("Asia/Jakarta"); $container = new \Slim\Container(); // Adding logger to Slim container $container['logger'] = function($c) { return new Silalahi\Slim\Logger(); }; $app = new \Slim\App($container); $app->get('/', function ($request, $response, $args) { // Info level log $this->logger->write("This message from logger class library", Silalahi\Slim\Logger::INFO); // Critical level log $this->logger->write("This is critical error log", Silalahi\Slim\Logger::CRITICAL); // Debug level log as default $this->logger->write("Default log was debug, if you not specified second argument."); return $response->write("Hello, world!"); }); $app->run();
上面的代码将创建一个类似以下的日志文件
[INFO] 2015-12-21T01:21:57+07:00 This message from logger class library
[CRITICAL] 2015-12-21T01:22:39+07:00 This is critical error log
[DEBUG] 2015-12-21T01:23:19+07:00 Default log was debug, if you not specified second argument.
中间件
Logger 作为 Slim 中间件使用。您可以使用 Logger 记录请求信息,例如响应状态码、延迟(以秒为单位)、客户端 IP 地址、请求方法和请求路径
<?php require "vendor/autoload.php"; date_default_timezone_set("Asia/Jakarta"); $app = new \Slim\App; // Adding middleware to Slim App $app->add(new Silalahi\Slim\Logger()); $app->get('/', function ($request, $response, $args) { return $response->write("Hello, World!"); }); $app->run();
上面的代码将创建一个类似以下的日志文件
[INFO] 2015-12-21T01:30:58+07:00 |200|0.003357 sec|::1|GET /
[INFO] 2015-12-21T01:31:04+07:00 |200|0.001672 sec|::1|GET /
[INFO] 2015-12-21T01:58:32+07:00 |404|0.001519 sec|::1|GET page-not-found
设置
Logger 可用的设置有
path:
(string) The relative or absolute filesystem path to a writable directory.
name:
(string) The log file name (Prefix file name).
name_format:
(string) The log file name format; parsed with `date()`.
extension:
(string) The file extention to append to the filename`.
message_format:
(string) The log message format; available tokens are...
%label% Replaced with the log message level (e.g. FATAL, ERROR, WARN).
%date% Replaced with a ISO8601 date string for current timezone.
%message% Replaced with the log message, coerced to a string.
示例设置
$container['logger'] = function($c) { return new Silalahi\Slim\Logger( [ 'path' => '.', 'name' => 'app_logger_', 'name_format' => 'Y-m-d', 'extension' => '.txt', 'message_format' => '[%label%] %date% %message%' ] ); };