• 打印log


    入口文件
    
    //日志记录配置
    if (!defined('DS')) {
        define('DS', '/');
    }
    if(!defined('APP_PATH_LOG')){
        define('APP_PATH_LOG', LOG_PATH.'admin/');
    }
    if(!defined('LOG_LEVEL')){
        define('LOG_LEVEL', LOG_INFO);
    }
    function log_message($msg, $level = LOG_INFO, $group = '') {
        $args = func_get_args ();
        if (! (is_int ( $level ) && $level <= LOG_DEBUG && $level >= LOG_EMERG)) {
            return;
        }
        if (defined ( 'LOG_LEVEL' )) {
            $logLevel = LOG_LEVEL;
        } else {
            $logLevel = LOG_ERR;
        }
        $logTypes = array (
                LOG_DEBUG => 'DEBUG', //7
                LOG_INFO => 'INFO',     //6
                LOG_NOTICE => 'NOTICE',
                LOG_WARNING => 'WARNING',
                LOG_ERR => 'ERR',
                LOG_CRIT => 'CRIT',
                LOG_ALERT => 'ALERT',
                LOG_EMERG => 'EMERG'  //0
        );
    
    
        $logType = $logTypes [$level];
        //取调用者的方法名
        $backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS & DEBUG_BACKTRACE_PROVIDE_OBJECT, 2);
    
        // $msg=sprintf('[%s:%s] ', get_called_class(), ''). $msg; 
        if(!empty($backtrace) && isset($backtrace[1])){
            $backtrace_caller = $backtrace[1];
            $call_class_name = isset($backtrace_caller['class']) ? $backtrace_caller['class'] : '';
            // $call_line = isset($backtrace_caller['line']) ? $backtrace_caller['line'] : '';
            $call_function_name = isset($backtrace_caller['function']) ? $backtrace_caller['function'] : '';
             $msg=sprintf('[%s:%s] ', $call_class_name, $call_function_name). $msg; 
        }
    
        $logdir = LOG_PATH;
        if (defined ( 'APP_PATH_LOG' )) {
            $logdir = APP_PATH_LOG;
        }
    
        $tmp_msg = '['.date ( 'Y-m-d H:i:s' )."] [{$logType}]";
        if(!empty($group)){
            $tmp_msg.=" - [{$group}]";
        }
        $msg =  $tmp_msg." - {$msg}
    ";
    
        //线上文件日志不记录 debug级别日志, 当前日志级别 <= 设定最级别
        if ($level <= $logLevel) {
            $fn = date ( 'Ymd' ) . ".log";
    
            $fileName = $logdir . DS . $fn;
    
            if (! is_dir ( $logdir )) {
                mkdir ( $logdir, 0755, TRUE );
            }
            $fileName = $logdir . DS . $fn;
            if (! file_exists ( $fileName )) {
                error_log ( $msg, 3, $fileName );
                @chmod ( $fileName, 0644 );
            } else {
                error_log ( $msg, 3, $fileName );
            }    
    
            if (defined ( 'LOG_STDOUT' )) {
                echo $msg;
            }
         }
    }
    log_message('specialInsertingData:'. json_encode($specialInsertingData),LOG_INFO);
    
    
  • 相关阅读:
    javascript闭包的理解
    关于打印
    CozyShark开发日志 3章节
    CozyShark开发日志 2章节
    CozyShark开发日志 1.5章节
    CozyShark开发日志 1章节
    CozyShark开发日志 0章节
    WPF:设置DataGrid中DataGridColumn列的普通样式和编辑样式
    Windows Phone开发学习笔记(1)---------自定义弹框
    一个简单的ASP.NEW MVC4网站(二)
  • 原文地址:https://www.cnblogs.com/wicub/p/5845662.html
Copyright © 2020-2023  润新知