Created
October 6, 2018 18:32
-
-
Save Go-Noji/490513574d3d9345e0a41b721981e527 to your computer and use it in GitHub Desktop.
CodeIgniterのログを独自カテゴリーに分けて出力する ref: https://qiita.com/Go-Noji/items/dbf248f2fd55ed48ca58
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
log_message('debug', 'デバックメッセージ'); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
log_message('debug', 'デバックメッセージ'); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
log_message('custome', 'カスタムメッセージ'); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?> | |
DEBUG - 2018-10-05 17:33:35 --> デバックメッセージ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?> | |
DEBUG - 2018-10-05 17:36:15 --> カスタムメッセージ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class MY_Log extends CI_Log { | |
private function _write_log($level, $msg) | |
{ | |
$category = isset($this->_levels[$level]) ? '' : $level.'-'; | |
$filepath = $this->_log_path.'log-'.$category.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 = self::strlen($message); $written < $length; $written += $result) | |
{ | |
if (($result = fwrite($fp, self::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); | |
} | |
/** | |
* Write Log File | |
* | |
* Generally this function will be called using the global log_message() function | |
* | |
* @param string $level The error level: 'error', 'debug' or 'info' | |
* @param string $msg The error message | |
* @return bool | |
*/ | |
public function write_log($level, $msg) | |
{ | |
if ($this->_enabled === FALSE) | |
{ | |
return FALSE; | |
} | |
$level = strtoupper($level); | |
if ( ! isset($this->_levels[$level])) | |
{ | |
return $this->_write_log($level, $msg); | |
} | |
if ( | |
isset($this->_levels[$level]) | |
&& (($this->_levels[$level] > $this->_threshold)) | |
&& ! isset($this->_threshold_array[$this->_levels[$level]]) | |
) | |
{ | |
return FALSE; | |
} | |
return $this->_write_log($level, $msg); | |
} | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment