Recommend this page to a friend! |
Download .zip |
Info | Documentation | View files (8) | Download .zip | 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% |
|
|
User Comments (1) | |||||
|
Applications that use this package |
If you know an application of this package, send a message to the author to add a link here.