Logger Requirements * logger class, "named" singletons through a factory * generate unique ID for each script run: isset($_SERVER['UNIQUE_ID'] ? $_SERVER['UNIQUE_ID'] : uniqid('') (from realurl) * logger API ->flush() ->log() * multiple log writers ->addWriter() __construct($writer): DB (default) Stream (File, StdErr, StdOut) Syslog Firebug Apache Chainsaw compatible * filters: * for the complete log * for individual writers * support for observers $logger = Logger::factory(); $observer = new Observer(); $logger->attach($observer); $logger->detach($observer); * multiple log severities: * just go with BSD syslog style? http://tools.ietf.org/html/rfc3164 * used by ZF, PEAR, sf, F3 * shortcut methods for log severities: ->notice() ->info() ->ok() ->warning() ->error() * parameters for log method: package (ExtKey.Component.SubComponent.SubSubComponent...) message code severity data * automatically collected data: unique ID per script run, see above timestamp including milliseconds call trace page ID BE user FE user * Backend module with list and single view of log entries * grouping of multiple events of same type, see Zend screenshot * list view: http://framework.zend.com/images/manual/d481d625821a97b9a5eb2cec99dca50e-zend.log.writers.zendmonitor-events.png * single view: http://framework.zend.com/images/manual/d481d625821a97b9a5eb2cec99dca50e-zend.log.writers.zendmonitor-event.png