class LoggerHook
{
    private $CI;
    function __construct()
    {
        $this->CI =& get_instance();
    }

    public function log()
    {
        $logger = new Logger('my_logger');
        
        $logger->pushHandler(new MongoDBHandler(new \MongoClient(), 'test', 'test'));
        

        if (isset($this->CI->session)) {
            $session_data = $this->CI->session->all_userdata();
        } else {
            $session_data = 'No session defined';
        }

        $dbs = array();

        // Let's determine which databases are currently connected to
        foreach (get_object_vars($this->CI) as $CI_object)
        {
            if (is_object($CI_object) && is_subclass_of(get_class($CI_object), 'CI_DB') )
            {
                $dbs[] = $CI_object;
            }
        }

        $queries = array();

        if (count($dbs) > 0){
            foreach ($dbs as $db){
                $driver_name = get_class($db);
                if (count($db->queries) > 0){
                    foreach ($db->queries as $key => $val) {
                        $time = number_format($db->query_times[$key], 4);

                        $queries[$driver_name][] = array('time' => $time , 'query' => $val);
                    }
                }
            }
        } else {
            $queries = 'There is no queries to log';
        }

        $logger->addInfo(
            'Session and queries',
            array(
                'session' => $session_data,
                'database' => $queries'url' => $this->CI->uri->uri_string()
            )
        );
        
    }
}