apeipo / xl-util
apeipo's util
1.0.11
2017-08-09 07:38 UTC
Requires
- php: >=5.6.4
- monolog/monolog: ~1.11
This package is not auto-updated.
Last update: 2025-06-08 05:07:41 UTC
README
XLCost
耗时计算封装,使用:
XLCost::begin("costA"); usleep(100 * 1000); //100ms XLCost::end("costA"); XLCost::begin("costB"); usleep(200 * 1000); //100ms XLCost::end("costB"); #数组返回 print_r(XLCost::all()); #str返回 print(XLCost::str() . "\n"); # 循环中的耗时计算, 超过一次的项会计算平均耗时 //test repeat for($i = 0; $i < 5; $i++) { XLCost::begin("costRepeat"); usleep(50 * 1000); XLCost::begin("costInRepeat"); usleep(80 * 1000); XLCost::end("costInRepeat"); XLCost::end("costRepeat"); } print_r("Test Repeat\n"); print_r(XLCost::flush());
XLLog
针对Monolog的包装类
- addNoticeKV, 只往日志里加notice的key但是不打印, 请求结束时一起打印。
- logid, 可以在web请求的入口给日志设置logid,后续打印的日志均带有该logid。
使用:
use XLUtil\XLLog; use Monolog\Logger; use Monolog\Handler\StreamHandler; $handler = (new StreamHandler("./test.log", Logger::DEBUG)); $logger = new Logger('test', [$handler]); XLLog::setLogger($logger); #设置全局logid, 这个逻辑可以放在web框架的入口,生成logid的方式请自行修改 XLLog::setLogid("LOG_ID", time()); XLLog::addNoticeKV("file", __FILE__); #增加key,但是不打印 XLLog::addNoticeKV("method", "test"); XLLog::warning("This is in test"); XLLog::flush("RequestFinish"); #打印所有的kv并清空 ####output [2017-07-10 13:22:56] test.WARNING: This is in test {"LOG_ID":1499692976} [] [2017-07-10 13:22:56] test.NOTICE: RequestDone {"file":"testMonologDecorator.php","method":"test","LOG_ID":1499692976} []