silalahi/slim-logger

此包的最新版本(dev-master)没有可用的许可证信息。

为 Slim 框架 3 的文件日志写入类和中间件

dev-master 2016-10-31 06:34 UTC

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%'
    ]
  );
};