wappr/logger

使用Flysystem的PSR-3日志记录器。

1.2.0 2016-11-26 23:38 UTC

This package is auto-updated.

Last update: 2024-09-16 04:10:25 UTC


README

日志记录器

Build Status codecov latest stable version license mit

这个日志记录器实现了PSR-3,因此您可以轻松地将当前日志记录器替换为这个。由于它使用了Flysystem,您可以轻松地在任何地方保留日志文件。

安装

通过composer安装此包是最好的方式。您可以从命令行执行,或将其添加到composer.json文件中所需部分,例如"wappr/logger": "^1.2"。下面是两种方式的示例。

Composer命令行

composer require wappr/logger

使用composer.json

{
  "require": {
    "wappr/logger": "^1.2"
  }
}

示例用法

基本用法

<?php
include 'vendor/autoload.php';
use League\Flysystem\Filesystem;
use League\Flysystem\Adapter\Local;
use Psr\Log\LogLevel;
use wappr\Logger;

$adapter = new Local(__DIR__.'/storage/logs/');
$filesystem = new Filesystem($adapter);

$logger = new Logger($filesystem, LogLevel::DEBUG);
$logger->info('hello');

更改选项

<?php
include 'vendor/autoload.php';
use League\Flysystem\Filesystem;
use League\Flysystem\Adapter\Local;
use Psr\Log\LogLevel;
use wappr\Logger;

$adapter = new Local(__DIR__.'/storage/logs/');
$filesystem = new Filesystem($adapter);

$logger = new Logger($filesystem, LogLevel::DEBUG);
$logger->setFilenameFormat('m-d-Y'); // change the format to month day year
$logger->setFilenameExtension('txt'); // change the extension to txt
        
$logger->info('hello');

使用S3进行日志存储

<?php
include('vendor/autoload.php');
use Aws\S3\S3Client;
use League\Flysystem\AwsS3v3\AwsS3Adapter;
use League\Flysystem\Filesystem;
use Psr\Log\LogLevel;
use wappr\Logger;

$client = S3Client::factory([
    'credentials' => [
        'key'    => '',
        'secret' => '',
    ],
    'region' => 'us-east-1',
    'version' => 'latest',
]);

$adapter = new AwsS3Adapter($client, 'bucket-name');

$filesystem = new Filesystem($adapter);

$logger = new Logger($filesystem, LogLevel::DEBUG);
$logger->setFilenameFormat('/Ymd/m-d-Y_Gis');
$logger->info('hello');

在上面的示例中,它设置文件名为包括年、月、日的目录。这样所有新写入的文件都将放入该目录。这是我想到的克服S3没有文件锁定限制的唯一方法。由于它是对象存储,所以存储桶中的目录或文件数量无关紧要。

许可证

版权(c)2016 wappr

特此授予任何获取本软件及其相关文档副本(“软件”)的人免费使用软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,以及允许软件提供方以本协议规定的方式使用软件的权利,前提是

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

本软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、针对特定目的的适用性和非侵权性保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论此类索赔、损害或其他责任是由于合同、侵权或其他方式引起的,与软件或其使用或其他交易有关。