wappr / logger
A PSR-3 logger that uses Flysystem.
Installs: 2 297
Dependents: 2
Suggesters: 0
Security: 0
Stars: 5
Watchers: 1
Forks: 0
Open Issues: 0
Requires
- php: >=5.6
- league/flysystem: ^1.0
- psr/log: ^1.0
This package is auto-updated.
Last update: 2024-10-16 04:18:58 UTC
README
Logger
This logger implements PSR-3, so you can easily replace your current logger with this one. You can effortlessly keep your log files anywhere since it uses Flysystem.
Installation
The best way to install this package is via composer. You can do it from the command line or
add "wappr/logger": "^1.2"
to the required section of your composer.json
. You can find
examples of both ways below.
Composer Command Line
composer require wappr/logger
Using composer.json
{ "require": { "wappr/logger": "^1.2" } }
Example Usage
Basic Usage
<?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');
Changing Options
<?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');
Using S3 for log storage
<?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');
In the above example, it sets the filename to include a directory with the year, month, and day. That way all newly written files will go in that directory. This is the only way I could think of to overcome the limitation of S3 not having file locking. Since it is object storage, it does not matter how many directories or files we have in the bucket.
License
Copyright (c) 2016 wappr
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.