摘要:一個(gè)高效簡(jiǎn)約靈活高性能的遵循的日志類庫(kù)實(shí)現(xiàn)。特性天然的緩存特性實(shí)例屬性,延遲批量寫入。注意如果你不使用請(qǐng)記得用你的方式加載所有必須的依賴類庫(kù)。如果你做了擴(kuò)展,為了性能請(qǐng)盡量確保它是批量完成寫操作的。
LoggerOne
One Efficient & Light & Flexible high performance PHP log implemention of PSR-3
一個(gè)高效、簡(jiǎn)約、靈活高性能的遵循PSR-3的PHP日志類庫(kù)實(shí)現(xiàn)。
Inherently cached message record using PHP object attribute.
天然的緩存特性(Logger實(shí)例屬性),延遲批量寫入。
$ composer require logger-one/logger-oneInvoke by default mode - 默認(rèn)的調(diào)用方式 Will using FileHandler create a log file named for %Y%m%d and appendix .log at LoggerOne root folder, ervery message as line with the original - 在默認(rèn)情況下,Logger會(huì)使用FileHandler 和 CommonFormatter 輸出一個(gè)保存在Logger同目錄的命名格式為 %Y%m%d的日志文件。
$logger = LoggerOneLogger::getInstance(); // Strongly recommend $message = "test log message {placeholder1} {placeholder2}"; $replacements = ["placeholder1" => "Foo", "placeholder2" => "bar"]; $logger->info($message, $replacements);Change FileHandler default path - 改變默認(rèn)日志文件保存地址
$logFile = "./tmp/loggerOne.log"; // Your path where you want $handler = new LoggerOneHandlerFileHandler($logFile); $logger->setHandler($handler); $logger->info($message);Specific Handler & Formatter - 指定使用特定的Handler/Formatter
$handler = new LoggerOneHandlerFooHandler(); $handler = new LoggerOneFormatterBarFormatter(); $logger->setHandler($handler)->setFormatter($formatter); $logger->info("some test log message");Flush log message immediately - 立即輸出到日志文件的調(diào)用方法 Once calling flush method will write all previous message by handler - 這樣將不緩存日志內(nèi)容,而把調(diào)用前所有的message立即寫入到標(biāo)的處。
... $logger->info("some test log message")->flush(); ...定制&擴(kuò)展/Customization&Extending Handler Extension Simple - Handler的擴(kuò)展方式 Put your own MySQLHandler.php in LoggerOneHandler folder - 將你的擴(kuò)展文件放置到LoggerOne/Handler目錄
table_name = $table_name; $this->db = $dbHandle; } public function write($messages) { $batchData = []; foreach ($messages as $level => $message) { $batchData[] = ["level" => $level, "message" => $message, "created" => time()]; } $this->db->insertBatch($this->table_name, $batchData); } }Use MySQLHandler.php - 使用擴(kuò)展
$logger = new LoggerOneLogger(); $handler = new LoggerOneHandlerMysqlHandler($yourLogTableName, $yourDbHandle); $logger->setHandler($handler); $logger->info("some test log message");Formatter Extension Simple - Formatter的擴(kuò)展方式 The way just like Handler extending - 聰明的你,你可以按你想發(fā)靈活的編寫你希望的Formatter處理類,過(guò)程和Handler擴(kuò)展流程同理,放到Formatter目錄就可以開(kāi)始使用了。 注意/Notice
If you have not using composer, should remember load all dependency class in your way. - 如果你不使用composer, 請(qǐng)記得用你的方式加載所有必須的依賴類庫(kù)。
Try to keep your handler write in batches for performace - 如果你做了Handler擴(kuò)展,為了性能請(qǐng)盡量確保它是批量完成寫操作的。
Github地址: https://github.com/lijiebin/L...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/23088.html
摘要:一的幾個(gè)函數(shù)異常捕獲自定義處理函數(shù)注冊(cè)錯(cuò)誤捕獲自定義處理函數(shù)注冊(cè)程序執(zhí)行時(shí)異常終止錯(cuò)誤捕獲處理函數(shù)注冊(cè)這三個(gè)函數(shù)在錯(cuò)誤處理控制中給開(kāi)發(fā)者提供了很大的自主空間,在日志系統(tǒng)中記錄日志信息有他們的功勞。下面要說(shuō)的類庫(kù)是借鑒了日志系統(tǒng)的設(shè)計(jì)。 引言 接觸過(guò)php框架的朋友們可能都知道,日志在項(xiàng)目中的重要作用了,他可以幫助我們定位錯(cuò)誤的位置,讓程序更友好(處理得當(dāng)?shù)脑挷粫?huì)直接拋出一大堆只有程...
摘要:源碼分析開(kāi)門篇生命周期入口文件用戶發(fā)起的請(qǐng)求都會(huì)經(jīng)過(guò)應(yīng)用的入口文件,通常是文件。注冊(cè)錯(cuò)誤和異常機(jī)制執(zhí)行注冊(cè)錯(cuò)誤和異常處理機(jī)制。由三部分組成應(yīng)用關(guān)閉方法錯(cuò)誤處理方法異常處理方法注冊(cè)應(yīng)用關(guān)閉方法是為了便于攔截一些系統(tǒng)錯(cuò)誤。 源碼分析—開(kāi)門篇 thinkphp生命周期 1、入口文件 用戶發(fā)起的請(qǐng)求都會(huì)經(jīng)過(guò)應(yīng)用的入口文件,通常是 ==public/index.php==文件。當(dāng)然,你也可以更改...
摘要:介紹是基于開(kāi)發(fā)的協(xié)程開(kāi)發(fā)框架,擁有常駐內(nèi)存協(xié)程異步非阻塞等優(yōu)點(diǎn)。宇潤(rùn)我在年開(kāi)發(fā)并發(fā)布了第一個(gè)框架,一直維護(hù)使用至今,非常穩(wěn)定,并且有文檔。于是我走上了開(kāi)發(fā)的不歸路 showImg(https://segmentfault.com/img/bVbcxQH?w=340&h=160); 介紹 IMI 是基于 Swoole 開(kāi)發(fā)的協(xié)程 PHP 開(kāi)發(fā)框架,擁有常駐內(nèi)存、協(xié)程異步非阻塞IO等優(yōu)點(diǎn)。...
閱讀 2233·2023-04-25 19:03
閱讀 1410·2021-10-14 09:42
閱讀 3585·2021-09-22 15:16
閱讀 1130·2021-09-10 10:51
閱讀 1835·2021-09-06 15:00
閱讀 2534·2019-08-30 15:55
閱讀 598·2019-08-29 16:22
閱讀 989·2019-08-26 13:49