摘要:一個高效簡約靈活高性能的遵循的日志類庫實現。特性天然的緩存特性實例屬性,延遲批量寫入。注意如果你不使用請記得用你的方式加載所有必須的依賴類庫。如果你做了擴展,為了性能請盡量確保它是批量完成寫操作的。
LoggerOne
One Efficient & Light & Flexible high performance PHP log implemention of PSR-3
一個高效、簡約、靈活高性能的遵循PSR-3的PHP日志類庫實現。
Inherently cached message record using PHP object attribute.
天然的緩存特性(Logger實例屬性),延遲批量寫入。
$ composer require logger-one/logger-oneInvoke by default mode - 默認的調用方式 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 - 在默認情況下,Logger會使用FileHandler 和 CommonFormatter 輸出一個保存在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 - 改變默認日志文件保存地址
$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 - 立即輸出到日志文件的調用方法 Once calling flush method will write all previous message by handler - 這樣將不緩存日志內容,而把調用前所有的message立即寫入到標的處。
... $logger->info("some test log message")->flush(); ...定制&擴展/Customization&Extending Handler Extension Simple - Handler的擴展方式 Put your own MySQLHandler.php in LoggerOneHandler folder - 將你的擴展文件放置到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 - 使用擴展
$logger = new LoggerOneLogger(); $handler = new LoggerOneHandlerMysqlHandler($yourLogTableName, $yourDbHandle); $logger->setHandler($handler); $logger->info("some test log message");Formatter Extension Simple - Formatter的擴展方式 The way just like Handler extending - 聰明的你,你可以按你想發靈活的編寫你希望的Formatter處理類,過程和Handler擴展流程同理,放到Formatter目錄就可以開始使用了。 注意/Notice
If you have not using composer, should remember load all dependency class in your way. - 如果你不使用composer, 請記得用你的方式加載所有必須的依賴類庫。
Try to keep your handler write in batches for performace - 如果你做了Handler擴展,為了性能請盡量確保它是批量完成寫操作的。
Github地址: https://github.com/lijiebin/L...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/23088.html
摘要:一的幾個函數異常捕獲自定義處理函數注冊錯誤捕獲自定義處理函數注冊程序執行時異常終止錯誤捕獲處理函數注冊這三個函數在錯誤處理控制中給開發者提供了很大的自主空間,在日志系統中記錄日志信息有他們的功勞。下面要說的類庫是借鑒了日志系統的設計。 引言 接觸過php框架的朋友們可能都知道,日志在項目中的重要作用了,他可以幫助我們定位錯誤的位置,讓程序更友好(處理得當的話不會直接拋出一大堆只有程...
摘要:源碼分析開門篇生命周期入口文件用戶發起的請求都會經過應用的入口文件,通常是文件。注冊錯誤和異常機制執行注冊錯誤和異常處理機制。由三部分組成應用關閉方法錯誤處理方法異常處理方法注冊應用關閉方法是為了便于攔截一些系統錯誤。 源碼分析—開門篇 thinkphp生命周期 1、入口文件 用戶發起的請求都會經過應用的入口文件,通常是 ==public/index.php==文件。當然,你也可以更改...
摘要:介紹是基于開發的協程開發框架,擁有常駐內存協程異步非阻塞等優點。宇潤我在年開發并發布了第一個框架,一直維護使用至今,非常穩定,并且有文檔。于是我走上了開發的不歸路 showImg(https://segmentfault.com/img/bVbcxQH?w=340&h=160); 介紹 IMI 是基于 Swoole 開發的協程 PHP 開發框架,擁有常駐內存、協程異步非阻塞IO等優點。...
閱讀 2076·2023-04-25 19:03
閱讀 1221·2021-10-14 09:42
閱讀 3399·2021-09-22 15:16
閱讀 946·2021-09-10 10:51
閱讀 1545·2021-09-06 15:00
閱讀 2401·2019-08-30 15:55
閱讀 485·2019-08-29 16:22
閱讀 893·2019-08-26 13:49