Codeigniter query times and custom file logging

2020-06-06 02:50发布

问题:

I'm developing an app using Codeigniter 1.7.3 (yes, I know there's a new version, but I'm just too lazy to update).

I noticed the Codeigniter built-in profiler outputs the query times. I want to access those times and write a custom log file with each query and each query time. To access the query I can user $this->db->last_query().

Is there any way to access those query times without hacking the core? Is there any library to write logs besides the system logs Codeigniter blundles?

Thanks!

回答1:

Well, I figure it out. I've set a hook just like this:

//config/hooks.php

$hook['display_override'][] = array(
        'class' => '',
        'function' => 'log_queries',
        'filename' => 'log_queries.php',
        'filepath' => 'hooks'
);

//hooks/log_queries.php

function log_queries() {
    $CI =& get_instance();
    $times = $CI->db->query_times;
    foreach ($CI->db->queries as $key=>$query) {
        log_message('debug', "Query: ".$query." | ".$times[$key]);
    }
}

I hope it helps someone!



回答2:

Can't help with the CodeIgniter side of things, but regarding logging, log4php is good: http://logging.apache.org/log4php/