Now 129125 iCalcreator
users worldwide!!

Services

kigkonsult offer professional services for software support, design and new/re-development, customizations and adaptations of PHP/MySQL solutions with focus on software lifecycle management, including long term utility, reliability and maintainability.

If you need any custom modules, modification or amendment based on iCalcreator to suit your needs or professional support, don't hesitate to contact us.

iCalcreator used in.. .

  • AgenDAV
  • albaven
  • All-in-One Event Calendar
  • Bugscope
  • Date iCal
  • Dokeos
  • event_connect
  • ESS Feed
  • Exponent CMS
  • EQDKP Plus
  • GCalendar
  • GLPI
  • Gumbo Millennium
  • Hypecal
  • iCal
  • JCal Pro
  • kitEvent
  • luryevents
  • MarkupiCalendar
  • One Big SYSTem
  • Open Atrium
  • Repository based CMS
  • sfiCalCreatorPlugin
  • Telaen
  • terncal
  • twical
  • Virtual Loup-De-Mer
  • "Weather Forecast"
  •  
  • And many more.. .
  •  

Tell us

what iCalcreator is missing,
use the contact page

Support us

Link to our site from yours!    kigkonsult.se - iCal PHP software 

We will create a link to your site in our list of featured users!

Credits & Licenses plus

iCalcreator and the related PHP software was conceived and written by Kjell-Inge Gustafsson.

Many people have contributed, through providing questions, issues, reporting bugs and sending patches.

iCalcreator (standard) and the related PHP software are released under the LGPL  /  GPL  /  CC licences.

This site uses:
cssmenumaker 
FotoramaMIT
jQueryMIT/GPL
jQuery UIMIT/GPL
jQuery TimepickerMIT/GPL
PHPMailerLGPL
prototypeCC BY-SA
reCAPTCHA 

loggerdepot

LoggerDepot 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 loggers and invoke the logger using (qualified namespaced) class names (ex `get_class()`) in the namespace tree.

It is possible to combine fixed key and "namespace" 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> ).

The construction makes it possible to supervise loggers for separate parts (functions, modules, components etc) of your software.

Click to get loggerdepot
from github - at packagist

USAGE

With <logger> (below) means any PHP logger and corresponding config.

Set up a (string) keyed logger:
<?php
use Kigkonsult\LoggerDepot\LoggerDepot;

LoggerDepot::registerLogger( , 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(  )) {
    LoggerDepot::registerLogger( , new <logger>( $logConfig ));
}

Get a (string) keyed logger, on demand:
<?php
use Kigkonsult\LoggerDepot\LoggerDepot;

$logger = LoggerDepot::getLogger(  );

or a one-liner (ex. for a Psr\Log logger):
<?php
use Kigkonsult\LoggerDepot\LoggerDepot;

LoggerDepot::getLogger(  )->error( 'Error message' );

The search of requested logger is performed in logger (set-)order.

Set up a 'namespace' logger in top of a 'namespace' tree:
<?php
use Kigkonsult\LoggerDepot\LoggerDepot;

LoggerDepot::registerLogger( __NAMESPACE__, new ( $logConfig ));

Get a 'namespace' logger in a class in the same/sub-level 'namespace' tree:
<?php
use Kigkonsult\LoggerDepot\LoggerDepot;

$logger = LoggerDepot::getLogger( get_class());

or a one-liner (ex. for a Psr\Log logger):
<?php
use Kigkonsult\LoggerDepot\LoggerDepot;

LoggerDepot::getLogger( get_class())->error( 'Error message' );

Example

A good way to avoid littering your code with `if( true == $debug ) { }`,

set upp a real logger in development enviroment
<?php
use Kigkonsult\LoggerDepot\LoggerDepot;
use Psr\Log\LogLevel;

LoggerDepot::registerLogger(
    LogLevel::DEBUG, // key, not log prio
    new ( $logConfig )
);

set upp a a NullLogger in production environment

(ex. for a Psr\Log NullLogger)

<?php
use Kigkonsult\LoggerDepot\LoggerDepot;
use Psr\Log\LogLevel;
use Psr\Log\NullLogger;

LoggerDepot::registerLogger(
    LogLevel::DEBUG, // key, not log prio
    new NullLogger()
);

and in code
<?php
use Kigkonsult\LoggerDepot\LoggerDepot;
use Psr\Log\LogLevel;

LoggerDepot::getLogger( LogLevel::DEBUG )->debug( 'debug message' );

Set up a fallback logger to use in case requested logger is not found:
<?php
use Kigkonsult\LoggerDepot\LoggerDepot;

LoggerDepot::registerLogger( , new ( $logConfig ));
LoggerDepot::setFallbackLoggerKey(  );

Note, setFallbackLoggerKey() return false if key (for logger) is not set.

or shorter
<?php
use Kigkonsult\LoggerDepot\LoggerDepot;

LoggerDepot::registerLogger( , new ( $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();

Fetch (array) keys for all loggers:
<?php
use Kigkonsult\LoggerDepot\LoggerDepot;

$keys = LoggerDepot::getLoggerKeys();

Remove a specific logger:
<?php
use Kigkonsult\LoggerDepot\LoggerDepot;

LoggerDepot::unregisterLogger(  );

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 );
}

The PHP software was conceived
and written by Kjell-Inge Gustafsson.
Many people have contributed,
hrough providing questions, issues,
reporting bugs and sending patches.
The PHP software are released under the LGPL  /  GPL  /  CC licences. Terms and Conditions
Privacy & Cookies Policy
Linking Policy
GitHub contact
Copyright © 2008-2019 Kjell-Inge Gustafsson, kigkonsult, All rights reserved
Product names mentioned herein are or may be trademarks or registered trademarks of their respective owners.