一个函数搞定PHP调试日志

对,你没有看错,不是syslog,也不是一坨class,一个函数搞定。。。
—————————-
今天有个搞C++同事问我PHP怎么打印日志,于是贴了他一个函数,绝对实用~
https://gist.github.com/emptyhua/5055043

function debug_log() {
    if (false) return; //开关
    static $fp = 0;
    if ($fp === 0) {
        $logname = 'myprojectname';//日志名称
        $fp = fopen('/tmp/' . $logname . '.debug.log', 'a');
    } 
    $traces = debug_backtrace();
    $trace = count($traces) > 1 ? $traces[1] : $traces[0];
    $log_msg = date('Y-m-d H:i:s') . ' FILE:' . basename($trace['file']) . ' FUNC:' . $trace['function'] . ' LINE:' . $trace['line'] . ' :' . "\n";
    foreach(func_get_args() as $arg) {
        if (is_string($arg)) {
            $log_msg .= $arg . ' ';
        } else {
            $log_msg .= var_export($arg, true) . ' ';
        }
    }
    fwrite($fp, $log_msg . "\n");
}
debug_log('队列ID:', $queue_id, '内容:', $task_infos);
2013-02-28 16:53:40 FILE:task.inc.php FUNC:_get_locate_task LINE:347
队列ID: locate337512971_taskqueue 内容: array (
)

讨论

  1. unieagle

    这个实用啊

  2. unieagle

    你的淘宝推广有流量么?

  3. 冥王星2011

    没流量。。。

加入讨论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.