public function log($level, $message, array $context = array())
    {
        /***
         * \note
         *      There are several contexts in which the follow code
         *      may not work as expected.
         *
         *      Using threads (https://github.com/krakjoe/pthreads)
         *      with this method will probably mess things up.
         *
         *      The following functions may also cause trouble
         *      depending on how they're used:
         *      - register_tick_function()
         *      - debug_backtrace()
         */
        $logging = \Plop\Plop::getInstance();
        $factory = $logging->getRecordFactory();
        try {
            // Switch to a factory that uses PSR3-interpolation.
            $logging->setRecordFactory(static::$factory);
            $logging->$level($message, $context);
        } catch (Exception $e) {
        }

        // Restore the original factory.
        $logging->setRecordFactory($factory);
    }