kigkonsult logo

Now 129123 iCalcreator
users worldwide!!


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.

Sponsored Links
Custom Search

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
  • iCalendar-to-Facebook-Event
  • JCal Pro
  • kitEvent
  • 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! - 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:
jQuery TimepickerMIT/GPL
prototypeCC BY-SA


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


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

Set up a (string) keyed logger:
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:
use Kigkonsult\LoggerDepot\LoggerDepot;

if( ! LoggerDepot::isLoggerSet(  )) {
    LoggerDepot::registerLogger( , new <logger>( $logConfig ));

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

$logger = LoggerDepot::getLogger(  );

or a one-liner (ex. for a Psr\Log logger):
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:
use Kigkonsult\LoggerDepot\LoggerDepot;

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

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

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

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

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


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

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

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

set upp a a NullLogger in production environment

(ex. for a Psr\Log NullLogger)

use Kigkonsult\LoggerDepot\LoggerDepot;
use Psr\Log\LogLevel;
use Psr\Log\NullLogger;

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

and in code
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:
use Kigkonsult\LoggerDepot\LoggerDepot;

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

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

or shorter
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:
use Kigkonsult\LoggerDepot\LoggerDepot;

$key = LoggerDepot::getFallbackLoggerKey();

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

$keys = LoggerDepot::getLoggerKeys();

Remove a specific logger:
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:
use Kigkonsult\LoggerDepot\LoggerDepot;

foreach( LoggerDepot::getLoggerKeys() as $key ) {
    LoggerDepot::unregisterLogger( $key );

The PHP software are designed
and developed by Kjell-Inge Gustafsson.
Many people have contributed,
providing questions, issues,
reporting bugs and patches.
The PHP software are licenced under
LGPL  /  GPL  /  CC
Terms and Conditions
Privacy & Cookies Policy
Linking Policy
kigkonsult 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.