CI_Log::write_log PHP Method

write_log() public method

Generally this function will be called using the global log_message() function
public write_log ( string $level, string $msg ) : boolean
$level string The error level: 'error', 'debug' or 'info'
$msg string The error message
return boolean
    public function write_log($level, $msg)
    {
        if ($this->_enabled === FALSE) {
            return FALSE;
        }
        $level = strtoupper($level);
        if ((!isset($this->_levels[$level]) or $this->_levels[$level] > $this->_threshold) && !isset($this->_threshold_array[$this->_levels[$level]])) {
            return FALSE;
        }
        $filepath = $this->_log_path . 'logs.' . $this->_file_ext;
        //$filepath = $this->_log_path.'log-'.date('Y-m-d').'.'.$this->_file_ext;
        $message = '';
        if (!file_exists($filepath)) {
            $newfile = TRUE;
            // Only add protection to php files
            if ($this->_file_ext === 'php') {
                $message .= "<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?>\n\n";
            }
        }
        if (!($fp = @fopen($filepath, 'ab'))) {
            return FALSE;
        }
        flock($fp, LOCK_EX);
        // Instantiating DateTime with microseconds appended to initial date is needed for proper support of this format
        if (strpos($this->_date_fmt, 'u') !== FALSE) {
            $microtime_full = microtime(TRUE);
            $microtime_short = sprintf("%06d", ($microtime_full - floor($microtime_full)) * 1000000);
            $date = new DateTime(date('Y-m-d H:i:s.' . $microtime_short, $microtime_full));
            $date = $date->format($this->_date_fmt);
        } else {
            $date = date($this->_date_fmt);
        }
        $message .= $this->_format_line($level, $date, $msg);
        for ($written = 0, $length = strlen($message); $written < $length; $written += $result) {
            if (($result = fwrite($fp, substr($message, $written))) === FALSE) {
                break;
            }
        }
        flock($fp, LOCK_UN);
        fclose($fp);
        if (isset($newfile) && $newfile === TRUE) {
            chmod($filepath, $this->_file_permissions);
        }
        return is_int($result);
    }

Usage Example

コード例 #1
0
 function write_log($level = 'error', $msg, $php_error = FALSE)
 {
     parent::write_log($level, $msg, $php_error);
     //$memory	 = (!function_exists('memory_get_usage')) ? '0' : memory_get_usage();
     $b = load_class('Benchmark');
     $b->mark($msg);
     $this->logs[] = array(date('Y-m-d H:i:s P'), $level, $msg);
 }
All Usage Examples Of CI_Log::write_log