Recommend this page to a friend! |
![]() ![]() |
Info | ![]() |
![]() |
![]() ![]() |
Reputation | Support forum (1) | Blog | Links |
Last Updated | Ratings | Unique User Downloads | Download Rankings | |||||
2021-05-27 (3 months ago) ![]() | Not enough user ratings | Total: 65 | All time: 9,902 This week: 212![]() |
Version | License | PHP version | Categories | |||
loggerdepot 1.0.1 | GNU Lesser Genera... | 5 | PHP 5, Logging |
is a depot for PHP application/software loggers >making loggers available on demand.
Each logger is identified by a unique and fixed (type case-sensitive _string_) key and set and retrieved using the key.
You can use namespace as key (ex __NAMESPACE__
) setting up a logger and
invoke the logger using (qualified namespaced) class names
(ex get_class()
or __CLASS__
) in the namespace tree.
It is possible to combine fixed key and 'namespaced' loggers in the depot.
You may also use different keys for the same logger as well as set a logger as a fallback logger.
Invoking of a logger is as easy as LoggerDepot::getLogger( <key> )
.
If no logger is set, a Psr\Log\NullLogger
is returned.
The construction makes it possible to supervise loggers for separate parts (functions, modules, components etc) of your software.
With \<logger\> (below) means any PHP logger and \<logConfig\> ) corresponding config.
<?php
namespace Kigkonsult\Example;
use Kigkonsult\LoggerDepot\LoggerDepot;
LoggerDepot::registerLogger(
__NAMESPACE__, // key
new <logger>( <logConfig> )
);
usage in class
<?php
namespace Kigkonsult\Example;
use Kigkonsult\LoggerDepot\LoggerDepot;
class LoggerUserClass1
{
private $logger = null;
public function __construct() {
$this->logger = LoggerDepot::getLogger( __CLASS__ );
$this->logger->debug( 'Start ' . __CLASS__ );
}
public function aMethod( $argument ) {
$this->logger->debug( 'Start ' . __METHOD__ );
$this->logger->info( 'aMethod argument IN : ' . $argument );
}
}
class LoggerUserClass2
{
public static function bMethod( $argument ) {
LoggerDepot::getLogger( __CLASS__ )->debug( 'Start ' . __METHOD__ );
}
}
###### Register loggers
- Set up a (string) keyed logger:
<?php
use Kigkonsult\LoggerDepot\LoggerDepot;
LoggerDepot::registerLogger( <key>, new <logger>( <logConfig> ));
Note, register using the same key again will replace existing logger.
- Or check first if logger is set:
<?php
use Kigkonsult\LoggerDepot\LoggerDepot;
if( ! LoggerDepot::isLoggerSet( <key> )) {
LoggerDepot::registerLogger( <key>, new <logger>( <logConfig> ));
}
###### getLogger usage 1
- Get a (string) keyed logger, on demand:
<?php
use Kigkonsult\LoggerDepot\LoggerDepot;
$logger = LoggerDepot::getLogger( <key> );
- or a one-liner (ex. for a Psr\Log logger):
<?php
use Kigkonsult\LoggerDepot\LoggerDepot;
LoggerDepot::getLogger( <key> )->error( 'Error message' );
###### getLogger usage 2
The search of requested logger is performed in logger (set-)order.
- Set up a 'namespace' logger in top of a 'namespace' tree:
<?php
namespace Kigkonsult\Example;
use Kigkonsult\LoggerDepot\LoggerDepot;
LoggerDepot::registerLogger( __NAMESPACE__, new <logger>( <logConfig> ));
- Get a 'namespace' logger in a class in the same/sub-level 'namespace' tree:
<?php
namespace Kigkonsult\Example\Impl;
use Kigkonsult\LoggerDepot\LoggerDepot;
class LoggerUserClass3
{
public function aMethod( $argument ) {
$logger = LoggerDepot::getLogger( get_class());
...
$logger->info( 'aMethod argument IN : ' . $argument );
}
}
- or a one-liner (ex. for a Psr\Log logger):
<?php
namespace Kigkonsult\Example\Impl;
use Kigkonsult\LoggerDepot\LoggerDepot;
class LoggerUserClass4
{
public function aMethod( $argument ) {
LoggerDepot::getLogger( get_class())->error( 'Error message' );
}
}
###### fallback
- Set up a fallback logger to use in case requested logger is not found:
<?php
use Kigkonsult\LoggerDepot\LoggerDepot;
LoggerDepot::registerLogger( <key>, new <logger>( <logConfig> ));
LoggerDepot::setFallbackLoggerKey( <key> );
Note, `LoggerDepot::setFallbackLoggerKey()` return `false` if key (for logger) is not set.
- or shorter
<?php
use Kigkonsult\LoggerDepot\LoggerDepot;
LoggerDepot::registerLogger( <key>, new <logger>( <logConfig> ), true );
The first logger is always set as fallback until specific logger is set.
Hence, a single logger will also serve as fallback.
- Fetch key for the fallback logger:
<?php
use Kigkonsult\LoggerDepot\LoggerDepot;
$key = LoggerDepot::getFallbackLoggerKey();
###### Misc
- Fetch (array) all keys for all loggers:
<?php
use Kigkonsult\LoggerDepot\LoggerDepot;
$keys = LoggerDepot::getLoggerKeys();
- Remove a specific logger:
<?php
use Kigkonsult\LoggerDepot\LoggerDepot;
LoggerDepot::unregisterLogger( <key> );
Caveat, removing the fallback logger will force 'the next' (in order) to take over.
- And (in the end?) remove all:
<?php
use Kigkonsult\LoggerDepot\LoggerDepot;
foreach( LoggerDepot::getLoggerKeys() as $key ) {
LoggerDepot::unregisterLogger( $key );
}
###### Installation
[Composer], from the Command Line:
composer require kigkonsult/loggerdepot:dev-master
Composer, in your `composer.json`:
{
"require": {
"kigkonsult/loggerdepot": "dev-master"
}
}
Composer, acquire access
use Kigkonsult\LoggerDepot\LoggerDepot;
...
include 'vendor/autoload.php';
Otherwise , download and acquire..
use Kigkonsult\LoggerDepot\LoggerDepot;
...
include 'pathToSource/loggerdepot/autoload.php';
###### License
This project is licensed under the LGPLv3 License
[Composer]:https://getcomposer.org/
Files
File
Role
Description
docs (2 files)
src (1 file)
test (1 file)
autoload.php
Aux.
Auxiliary script
composer.json
Data
Auxiliary data
phpunit.xml
Data
Auxiliary data
README.md
Doc.
Read me
Version Control Unique User Downloads Download Rankings 100% Total: 65 This week: 0
All time: 9,902 This week: 212 
User Comments (1)
Thats a very good class ;-)
1 year ago (José Filipe Lopes Santos) 70% 



Applications that use this package
No pages of applications that use this class were specified.
If you know an application of this package, send a message to the author to add a link here.