Giter Club home page Giter Club logo

exlogger's Introduction

ExLogger

ExLogger是一个CI的Library:

  1. 应用save方式会以日志文件保存此次请求的控制器和执行的方法,GET参数,POST参数,SESSION变量和所执行的全部SQL语句,默认存储在logs文件夹下,文件名默认为exlog-YYYY-mm-dd.php
  2. 应用console方式会将此次请求的控制器和执行方法,GET参数,POST参数,SESSION变量和所执行的全部SQL语句信息保存在响应的HTTP header中,配合chrome插件ExLogger For Chrome,可以在Chrome浏览器的console中显示信息

调用方式

通过构造器调用

$logger = new ExLogger(ExLogger::LOG_REQUEST | ExLogger::LOG_SESSION | ExLogger::LOG_QUERY);
$logger->save();
$logger = new ExLogger(ExLogger::LOG_ALL);
$logger->console();

链式操作调用

$logger = new ExLogger();
$logger->get()->post()->session()->queries()->save();
$logger = new ExLogger();
$logger->request()->session()->queries()->console();

以save、console、save_console、console_save开头的方法调用

$logger = new ExLogger();
//save后面接post、get、request、session、requires,数量和顺序可变,以下划线“_”分割
$logger->save_post_queries();
$logger = new ExLogger();
//console后面接post、get、request、session、requires,数量和顺序可变,以下划线“_”分割
$logger->console_post_queries_session();

每次请求后自动执行

可以在config中开启hook,然后在post_controller hook中调用ExLogger

$config['enable_hooks'] = TRUE;
$hook['post_controller'] = function () {
    $CI =& get_instance();
    $CI->load->library('ExLogger');
    $logger = new ExLogger();
    $logger->save_request_session_queries();
};

post_controller hook会在控制器完全运行结束时执行,如果程序执行中通过exit或die退出,post_controller hook中的代码将无法执行

这种情况下可以通过register_shutdown_function方式实现,在index.php中添加如下代码

if (ENVIRONMENT != 'production')
{
	ob_start();
	register_shutdown_function(function ()
	{
		$CI =& get_instance();
		$CI->load->library('ExLogger');
		$logger = new ExLogger();
		$logger->console_request_session_queries();
		ob_flush();
	});
}

require_once BASEPATH.'core/CodeIgniter.php';

EXPLAIN SQL

对支持explain命令的数据库,记录执行sql explain的结果

$logger = new Exlogger();
$logger->explain_sql(true);
$logger = new Exlogger(Exlogger::SQL_EXPLAIN);

exlogger's People

Contributors

lambda47 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.