Weekend extension challenge #1 – Multiple logger and one implementation for getsentry.com – 0.05 BTC bounty

Notice: This thread is very old.
Member | 94

Please read rules first!

Deadline: Tuesday 0800 CET

DameJidlo.cz now supports Bitcoin so you can buy pizza with your bounty!


Create at two extensions one main and at least one secondary.

Main extension

Must provide interface for integration of loggers (not only limited) to Debugger::$logger.

  • Follow rixxi/modular style for extension interfaces
  • Adding loggers should be possible via config like subscribers in kdyby/events (custom config field and tags)
  • Should not depend on kdyby/events since one of its purposes is error logging.
  • [optional] Copy default exception mailing behavior into separate logger.
    • BC If it would proxy the NetteExtension configuration it would be perfect.
  • [optional] Integrate logger interface php-fig/log
  • Can not be just facade over or child of already existing extension with similar behavior (ie. bazo/nette-chain-logger-extension).
Secondary Extension

Implement at least one (secondary) extension using interface provided by main extension.

  • One implementation must be for Sentry service. See getsentry/raven package for client.
  • No singletons except when overriding Debugger::$logger.
  • Usage of secondary extensions should not be limited to only logging via primary extension. (I should be able to get default Sentry client via $container->getByType(‘X/Y/Z’) and send own message etc.)
Additional Secondary Extensions
  • Default exception mailing behavior of Nette (should be part of main extension)
  • newrelic
  • and others…

Rule Changes

Additional extensions using main extension interface will be counted as pull request to main extension (same rules as for pull requests) and with pull requests to the delayed half of bounty. Author(s) can implement 5 additional secondary extensions and will collect full bounty.


Tasks can change slightly but the idea will stay same.

Last edited by mishak (2014-01-13 19:25)