php的handler,PHP: SessionHandler - Manual

Here is a wrapper to log in a file each session's operations. Useful to investigate sessions locks (which prevent PHP to serve simultaneous requests for a same client).

Just change the file name at the end to dump logs where you want.

class DumpSessionHandler extends SessionHandler {

private $fich;

public function __construct($fich) {

$this->fich = $fich;

}

public function close() {

$this->log('close');

return parent::close();

}

public function create_sid() {

$this->log('create_sid');

return parent::create_sid();

}

public function destroy($session_id) {

$this->log('destroy('.$session_id.')');

return parent::destroy($session_id);

}

public function gc($maxlifetime) {

$this->log('close('.$maxlifetime.')');

return parent::gc($maxlifetime);

}

public function open($save_path, $session_name) {

$this->log('open('.$save_path.', '.$session_name.')');

return parent::open($save_path, $session_name);

}

public function read($session_id) {

$this->log('read('.$session_id.')');

return parent::read($session_id);

}

public function write($session_id, $session_data) {

$this->log('write('.$session_id.', '.$session_data.')');

return parent::write($session_id, $session_data);

}

private function log($action) {

$base_uri = explode('?', $_SERVER['REQUEST_URI'], 2)[0];

$hdl = fopen($this->fich, 'a');

fwrite($hdl, date('Y-m-d h:i:s').' '.$base_uri.' : '.$action."\n");

fclose($hdl);

}

}

ini_set('session.save_handler', 'files');

$handler = new DumpSessionHandler('/path/to/dump_sessions.log');

session_set_save_handler($handler, true);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值