Improve logger performance
- Reorder condition to prevent constant lookup (one-time ~3,500 substr) - Enforce coding standards
This commit is contained in:
parent
74ce4c2710
commit
44d5dec06f
1 changed files with 34 additions and 26 deletions
|
@ -678,11 +678,13 @@ function attribute_contains($attr,$s) {
|
||||||
return false;
|
return false;
|
||||||
}}
|
}}
|
||||||
|
|
||||||
if(! function_exists('logger')) {
|
if (! function_exists('logger')) {
|
||||||
/* setup int->string log level map */
|
/* setup int->string log level map */
|
||||||
$LOGGER_LEVELS = array();
|
$LOGGER_LEVELS = array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* @brief Logs the given message at the given log level
|
||||||
|
*
|
||||||
* log levels:
|
* log levels:
|
||||||
* LOGGER_NORMAL (default)
|
* LOGGER_NORMAL (default)
|
||||||
* LOGGER_TRACE
|
* LOGGER_TRACE
|
||||||
|
@ -692,35 +694,42 @@ $LOGGER_LEVELS = array();
|
||||||
*
|
*
|
||||||
* @global App $a
|
* @global App $a
|
||||||
* @global dba $db
|
* @global dba $db
|
||||||
|
* @global array $LOGGER_LEVELS
|
||||||
* @param string $msg
|
* @param string $msg
|
||||||
* @param int $level
|
* @param int $level
|
||||||
*/
|
*/
|
||||||
function logger($msg,$level = 0) {
|
function logger($msg, $level = 0) {
|
||||||
// turn off logger in install mode
|
|
||||||
global $a;
|
global $a;
|
||||||
global $db;
|
global $db;
|
||||||
global $LOGGER_LEVELS;
|
global $LOGGER_LEVELS;
|
||||||
|
|
||||||
if(($a->module == 'install') || (! ($db && $db->connected))) return;
|
|
||||||
|
|
||||||
if (count($LOGGER_LEVELS)==0){
|
|
||||||
foreach (get_defined_constants() as $k=>$v){
|
|
||||||
if (substr($k,0,7)=="LOGGER_")
|
|
||||||
$LOGGER_LEVELS[$v] = substr($k,7,7);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$debugging = get_config('system','debugging');
|
$debugging = get_config('system','debugging');
|
||||||
$loglevel = intval(get_config('system','loglevel'));
|
|
||||||
$logfile = get_config('system','logfile');
|
$logfile = get_config('system','logfile');
|
||||||
|
$loglevel = intval(get_config('system','loglevel'));
|
||||||
|
|
||||||
if((! $debugging) || (! $logfile) || ($level > $loglevel))
|
// turn off logger in install mode
|
||||||
|
if (
|
||||||
|
$a->module == 'install'
|
||||||
|
|| ! ($db && $db->connected)
|
||||||
|
|| ! $debugging
|
||||||
|
|| ! $logfile
|
||||||
|
|| $level > $loglevel
|
||||||
|
) {
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (count($LOGGER_LEVELS) == 0) {
|
||||||
|
foreach (get_defined_constants() as $k => $v){
|
||||||
|
if (substr($k, 0, 7) == "LOGGER_")
|
||||||
|
$LOGGER_LEVELS[$v] = substr($k, 7, 7);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$process_id = session_id();
|
$process_id = session_id();
|
||||||
|
|
||||||
if ($process_id == "")
|
if ($process_id == '') {
|
||||||
$process_id = get_app()->process_id;
|
$process_id = get_app()->process_id;
|
||||||
|
}
|
||||||
|
|
||||||
$callers = debug_backtrace();
|
$callers = debug_backtrace();
|
||||||
$logline = sprintf("%s@%s\t[%s]:%s:%s:%s\t%s\n",
|
$logline = sprintf("%s@%s\t[%s]:%s:%s:%s\t%s\n",
|
||||||
|
@ -736,7 +745,6 @@ function logger($msg,$level = 0) {
|
||||||
$stamp1 = microtime(true);
|
$stamp1 = microtime(true);
|
||||||
@file_put_contents($logfile, $logline, FILE_APPEND);
|
@file_put_contents($logfile, $logline, FILE_APPEND);
|
||||||
$a->save_timestamp($stamp1, "file");
|
$a->save_timestamp($stamp1, "file");
|
||||||
return;
|
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue