Laravel日誌教程
無論你使用什麼語言和框架, 適當的日誌記錄對Web開發是至關重要的.在 除錯和 效能監控方面,日誌是關鍵 。知道如何正確使用日誌框架是建立易於除錯的高質量軟體的一個重要部分。
在這篇文章中,我們將深入討論Laravel,它是 2021年最流行的PHP框架 。
圖1: 谷歌趨勢比較流行的PHP框架
具體來說, 我們將涵蓋以下關於Laravel 8.0的內容:
- 介紹Monolog, Laravel的日誌庫
- 探索日誌配置檔案
- 編寫日誌資訊和使用日誌級別
- 格式化你的日誌資訊
- 傳送你的日誌到 Retrace
前四個部分涵蓋了Laravel日誌的基礎知識.最後一節將你從這些部分學到的所有知識,並將其用於展示如何將你的日誌語句傳送到一個外部服務 - Netreo Retrace.
讓我們開始吧!
提示。使用Stackify Retrace即時查詢應用程式的錯誤和效能問題
通過整合的錯誤、日誌和程式碼級別的效能洞察力,故障排除和優化你的程式碼很容易。
1.介紹一下Monolog, Laravel的日誌庫
Monolog 是一個非常流行的PHP日誌庫,Laravel使用它來滿足所有的日誌需求。Monolog的奇妙之處在於,它提供了一個通用的介面,讓你可以將日誌寫到任何地方,從標準的文字檔案到第三方的日誌管理服務。
關於單獨使用Monolog的細節,你可以檢視 這個教程。
Monolog非常靈活,可以將日誌傳送到檔案、套接字、電子郵件地址、資料庫和各種網路服務。在後面的章節中, 我們將展示Monolog如何提供處理程式,輕鬆幫助你將日誌傳送到這些不同的目的地。Laravel通常通過一個日誌配置檔案來設定Monolog, 所以現在我們要告訴你日誌配置檔案是如何工作的.
2.探索日誌配置檔案
在Laravel中, 有各種各樣的配置檔案在 config 資料夾 中找到 , 其中包含了你的配置檔案, 意味著資料庫連線, 電子郵件連線, 快取, 等等.你應該期望你的日誌配置也能在這裡找到,路徑在 config/logging.php。
進口
圖2: config/logging.php的前五行
當你建立一個Laravel應用時, 前幾行是它使用的進口。預設情況下, 你應該看到上面顯示的兩個處理程式被匯入。正如前面所解釋的, 這是Monolog提供的兩個典型的處理程式.
渠道
Laravel Monolog使用了一個叫做通道的概念。這些通道是你可以傳送你的日誌的不同地方。對於config/logging.php的其餘部分, 配置檔案會返回一個有兩個主要鍵的關聯陣列 - default 和 channels.
圖3:預設通道通常是堆疊
Default代表任何日誌被髮送到的預設通道。最關鍵的是,你選擇的預設通道要在陣列中 的channel 鍵下表示 。 正如你在上面看到的,stack是預設通道。
圖 4: 通道的列表
通道代表了可用於傳送你的日誌的全部通道列表,而stack是列出的第一個通道。在本文的其餘部分,只要提到通道列表,我們就特指通道的完整列表。
每個通道內的配置
在 通道列表下的每個通道中 ,你可以看到正在使用的不同鍵。瞭解每個鍵是如何影響日誌記錄的,將給你最大的靈活性來配置你想要的日誌輸出。
第一種型別的鍵是 驅動。在Laravel 5.6之前, Laravel的驅動程式只支援四個基於檔案的輸出:
- 寫入一個單一的檔案。預設情況下, 這通常 是storage/logs/laravel.log
- 每日檔案.預設情況下, 這將給你的檔案如 storage/logs/laravel-2018-12-03.log, storage/logs/laravel-2018-12-04.log 等等
- 錯誤日誌。錯誤日誌的位置取決於你使用的Web伺服器軟體,如nginx或Apache,以及伺服器的作業系統。通常情況下,這意味著在Linux上使用Nginx,檔案在 /var/log/nginx/error.log
- 系統日誌,也被稱為syslog,位置同樣取決於伺服器作業系統。
驅動程式
在Laravel 5.6及以上版本中, 我們有全新的驅動程式支援更多的日誌輸出.舊的驅動仍然可以在 "single", "daily", "errorlog "和 "syslog "這些值下使用.現在我們有了新的數值,用於新種類的日誌輸出。一些常用的新驅動程式包括。
堆疊
這只是意味著你可以將多個日誌通道堆疊在一起。當你使用 "堆疊 "驅動時,你需要在 "通道 "這個鍵下為其他通道設定一個數值陣列。請看圖4,這是一個使用中的堆疊驅動程式的例子。
Slack
這可以讓你把日誌傳送到流行的社交頻道 Slack。當你使用這個驅動時,你也需要配置URL。可選的與Slack相關的變數包括使用者名稱和表情符號。Slack驅動本質上允許你將日誌輸出到一個特定的Slack頻道。預設情況下, 當你使用Laravel命令列建立一個8.0的新專案時, 你會看到一個配置Slack日誌通道的例子(見下面的圖5).
圖 5: 預設情況下, Laravel 8.0包括一個Slack頻道的例子
獨白
看到Monolog又出現了,這次是作為它自己的驅動,有點奇怪。要記住的一點是,當你想使用Monolog的本地處理程式時,你要使用Monolog驅動。值得慶幸的是,預設的日誌配置檔案提供了兩個使用兩種不同Monolog處理程式的例子。這裡有一個指向 Monolog處理程式完整列表的連結 ,而不是對各種Monolog處理程式型別進行過多的詳細介紹, 這樣你就可以按照自己的速度來回顧。
圖 6: 預設日誌配置檔案使用Monolog StreamHandler和SyslogHandler
自定義
在Laravel的官方文件中,只有一小段關於這個的文字。在流行的傳統驅動程式和各種Monolog處理程式之間, 很難想象有人會編寫自己的自定義通道驅動程式.然而, 如果你想這樣做, 你可以.通常情況下,自定義通道是將日誌寫入第三方服務,如Apache Kafka和Logstash。
首先,你的自定義通道需要選擇一個自定義驅動,然後新增一個 via 選項,指向一個日誌工廠類。
'channels' => [
'custom' => [
'driver' => 'custom',
'via' => AppLoggingCustomLoggerFactory::class,
],
],
在你設定了自定義通道之後,你就可以準備定義工廠類了。請 記住,你必須通過 __invoke 方法返回一個 Monolog 記錄儀例項 。
``` <?php namespace AppLogging; use MonologLogger;
class CustomLoggerFactory { /* * This class will create a custom Monolog instance. * * @param array $config * @return MonologLogger / public function __invoke(array $config) { return new Logger(...); } } ```
嘗試使用自定義驅動作為最後的手段。如果你稍微搜尋一下,通常你會找到一個標準化的方法來使用現有的驅動或處理程式來滿足你的特殊日誌需求。即使你不得不自己編寫自定義的日誌驅動,也要嘗試看看是否有人已經編寫了開源版本或你需要的日誌工廠類的例子。換句話說:如果你可以的話,不要重新發明輪子!
驅動程式彙總表
這裡有一個有用的彙總表,列出了各種常見的驅動程式以及它們的含義。
驅動程式以把格式器配置選項的值設為預設。
``` 'newrelic' =>的值設為預設。
5.把它放在一起:把你的日誌傳送給Retrace這裡是壓軸戲,你可以把你在前幾節學到的東西都用在一個練習中。在這一節中, 我們嘗試將Laravel的日誌資訊傳送到Netreo Retrace.Retrace允許你從你的日誌中收集洞察力, 給你一個單一的地方來執行 程式碼剖析, 效能監控 和 集中的日誌.
專門為Retrace設定一個通道正如你在 "解釋日誌配置檔案 "一節中所學到的,將應用程式的日誌資訊傳送到Retrace的第一步是為Retrace在堆疊多通道中新增一個特定的日誌通道。 第一步。使用 composer 來安裝 Stackify Monolog 處理程式包用 composer require stackify/monolog "~2.X"安裝最新版本 。 或者你可以在你的 composer.json 檔案中新增一個依賴項 。
第二步。在環境變數檔案(.env)中設定各種Retrace變數關鍵變數是API金鑰、應用程式名稱和環境名稱。確保它們被設定在你的Laravel應用的.env檔案中。你應該為每個不同的.env檔案設定不同的值,這取決於你希望從哪個環境傳送日誌。 第3步.改變你的config/logging.php我們建議在5個不同的地方修改配置檔案, 我們用步驟3.1, 步驟3.2等符號將其分解成註釋. ``` // after the typical imports in the config file // Step 3.1 import the following and make sure you add use StackifyLogTransportExecTransport; use StackifyLogMonologHandler as StackifyHandler; // Step 3.2: assign your Retrace various variables as environment variable then call here $retrace_api_key = env('RETRACE_API_KEY', 'api_key'); // Step 3.3: create the transport instance here. You need this in Step 3.5 $transport_for_retrace = new ExecTransport($retrace_api_key); return [ // for brevity I removed the comments 'default' =>` 5.把它放在一起:把你的日誌傳送給Retrace這裡是壓軸戲,你可以把你在前幾節學到的東西都用在一個練習中。在這一節中, 我們嘗試將Laravel的日誌資訊傳送到Netreo Retrace.Retrace允許你從你的日誌中收集洞察力, 給你一個單一的地方來執行 程式碼剖析, 效能監控 和 集中的日誌.
專門為Retrace設定一個通道正如你在 "解釋日誌配置檔案 "一節中所學到的,將應用程式的日誌資訊傳送到Retrace的第一步是為Retrace在堆疊多通道中新增一個特定的日誌通道。 第一步。使用 composer 來安裝 Stackify Monolog 處理程式包用 composer require stackify/monolog "~2.X"安裝最新版本 。 或者你可以在你的 composer.json 檔案中新增一個依賴項 。
第二步。在環境變數檔案(.env)中設定各種Retrace變數關鍵變數是API金鑰、應用程式名稱和環境名稱。確保它們被設定在你的Laravel應用的.env檔案中。你應該為每個不同的.env檔案設定不同的值,這取決於你希望從哪個環境傳送日誌。 第3步.改變你的config/logging.php我們建議在5個不同的地方修改配置檔案, 我們用步驟3.1, 步驟3.2等符號將其分解成註釋. ``` // after the typical imports in the config file // Step 3.1 import the following and make sure you add use StackifyLogTransportExecTransport; use StackifyLogMonologHandler as StackifyHandler; // Step 3.2: assign your Retrace various variables as environment variable then call here $retrace_api_key = env('RETRACE_API_KEY', 'api_key'); // Step 3.3: create the transport instance here. You need this in Step 3.5 $transport_for_retrace = new ExecTransport($retrace_api_key); return [ // for brevity I removed the comments 'default' => | |
每日日誌傳送給Retrace
這裡是壓軸戲,你可以把你在前幾節學到的東西都用在一個練習中。在這一節中, 我們嘗試將Laravel的日誌資訊傳送到Netreo Retrace.Retrace允許你從你的日誌中收集洞察力, 給你一個單一的地方來執行 程式碼剖析, 效能監控 和 集中的日誌.
專門為Retrace設定一個通道正如你在 "解釋日誌配置檔案 "一節中所學到的,將應用程式的日誌資訊傳送到Retrace的第一步是為Retrace在堆疊多通道中新增一個特定的日誌通道。 第一步。使用 composer 來安裝 Stackify Monolog 處理程式包用 composer require stackify/monolog "~2.X"安裝最新版本 。 或者你可以在你的 composer.json 檔案中新增一個依賴項 。
第二步。在環境變數檔案(.env)中設定各種Retrace變數關鍵變數是API金鑰、應用程式名稱和環境名稱。確保它們被設定在你的Laravel應用的.env檔案中。你應該為每個不同的.env檔案設定不同的值,這取決於你希望從哪個環境傳送日誌。 第3步.改變你的config/logging.php我們建議在5個不同的地方修改配置檔案, 我們用步驟3.1, 步驟3.2等符號將其分解成註釋. ``` // after the typical imports in the config file // Step 3.1 import the following and make sure you add use StackifyLogTransportExecTransport; use StackifyLogMonologHandler as StackifyHandler; // Step 3.2: assign your Retrace various variables as environment variable then call here $retrace_api_key = env('RETRACE_API_KEY', 'api_key'); // Step 3.3: create the transport instance here. You need this in Step 3.5 $transport_for_retrace = new ExecTransport($retrace_api_key); return [ // for brevity I removed the comments 'default' => | 用於每天的日誌。使用 Monolog 的 RotatingFileHandler。你在前幾節學到的東西都用在一個練習中。在這一節中, 我們嘗試將Laravel的日誌資訊傳送到Netreo Retrace.Retrace允許你從你的日誌中收集洞察力, 給你一個單一的地方來執行 程式碼剖析, 效能監控 和 集中的日誌.
專門為Retrace設定一個通道正如你在 "解釋日誌配置檔案 "一節中所學到的,將應用程式的日誌資訊傳送到Retrace的第一步是為Retrace在堆疊多通道中新增一個特定的日誌通道。 第一步。使用 composer 來安裝 Stackify Monolog 處理程式包用 composer require stackify/monolog "~2.X"安裝最新版本 。 或者你可以在你的 composer.json 檔案中新增一個依賴項 。
第二步。在環境變數檔案(.env)中設定各種Retrace變數關鍵變數是API金鑰、應用程式名稱和環境名稱。確保它們被設定在你的Laravel應用的.env檔案中。你應該為每個不同的.env檔案設定不同的值,這取決於你希望從哪個環境傳送日誌。 第3步.改變你的config/logging.php我們建議在5個不同的地方修改配置檔案, 我們用步驟3.1, 步驟3.2等符號將其分解成註釋. ``` // after the typical imports in the config file // Step 3.1 import the following and make sure you add use StackifyLogTransportExecTransport; use StackifyLogMonologHandler as StackifyHandler; // Step 3.2: assign your Retrace various variables as environment variable then call here $retrace_api_key = env('RETRACE_API_KEY', 'api_key'); // Step 3.3: create the transport instance here. You need this in Step 3.5 $transport_for_retrace = new ExecTransport($retrace_api_key); return [ // for brevity I removed the comments 'default' =>學到的東西都用在一個練習中。在這一節中, 我們嘗試將Laravel的日誌資訊傳送到Netreo Retrace.Retrace允許你從你的日誌中收集洞察力, 給你一個單一的地方來執行 程式碼剖析, 效能監控 和 集中的日誌.
專門為Retrace設定一個通道正如你在 "解釋日誌配置檔案 "一節中所學到的,將應用程式的日誌資訊傳送到Retrace的第一步是為Retrace在堆疊多通道中新增一個特定的日誌通道。 第一步。使用 composer 來安裝 Stackify Monolog 處理程式包用 composer require stackify/monolog "~2.X"安裝最新版本 。 或者你可以在你的 composer.json 檔案中新增一個依賴項 。
第二步。在環境變數檔案(.env)中設定各種Retrace變數關鍵變數是API金鑰、應用程式名稱和環境名稱。確保它們被設定在你的Laravel應用的.env檔案中。你應該為每個不同的.env檔案設定不同的值,這取決於你希望從哪個環境傳送日誌。 第3步.改變你的config/logging.php我們建議在5個不同的地方修改配置檔案, 我們用步驟3.1, 步驟3.2等符號將其分解成註釋. ``` // after the typical imports in the config file // Step 3.1 import the following and make sure you add use StackifyLogTransportExecTransport; use StackifyLogMonologHandler as StackifyHandler; // Step 3.2: assign your Retrace various variables as environment variable then call here $retrace_api_key = env('RETRACE_API_KEY', 'api_key'); // Step 3.3: create the transport instance here. You need this in Step 3.5 $transport_for_retrace = new ExecTransport($retrace_api_key); return [ // for brevity I removed the comments 'default' => |
slack中, 我們嘗試將Laravel的日誌資訊傳送到Netreo Retrace.Retrace允許你從你的日誌中收集洞察力, 給你一個單一的地方來執行 程式碼剖析, 效能監控 和 集中的日誌.
專門為Retrace設定一個通道正如你在 "解釋日誌配置檔案 "一節中所學到的,將應用程式的日誌資訊傳送到Retrace的第一步是為Retrace在堆疊多通道中新增一個特定的日誌通道。 第一步。使用 composer 來安裝 Stackify Monolog 處理程式包用 composer require stackify/monolog "~2.X"安裝最新版本 。 或者你可以在你的 composer.json 檔案中新增一個依賴項 。
第二步。在環境變數檔案(.env)中設定各種Retrace變數關鍵變數是API金鑰、應用程式名稱和環境名稱。確保它們被設定在你的Laravel應用的.env檔案中。你應該為每個不同的.env檔案設定不同的值,這取決於你希望從哪個環境傳送日誌。 第3步.改變你的config/logging.php我們建議在5個不同的地方修改配置檔案, 我們用步驟3.1, 步驟3.2等符號將其分解成註釋. ``` // after the typical imports in the config file // Step 3.1 import the following and make sure you add use StackifyLogTransportExecTransport; use StackifyLogMonologHandler as StackifyHandler; // Step 3.2: assign your Retrace various variables as environment variable then call here $retrace_api_key = env('RETRACE_API_KEY', 'api_key'); // Step 3.3: create the transport instance here. You need this in Step 3.5 $transport_for_retrace = new ExecTransport($retrace_api_key); return [ // for brevity I removed the comments 'default' => | 用於傳送至 Slack 頻道。使用 Monolog 的 SlackWebhookHandler。com/retrace/).Retrace允許你從你的日誌中收集洞察力, 給你一個單一的地方來執行 程式碼剖析, 效能監控 和 集中的日誌.
專門為Retrace設定一個通道正如你在 "解釋日誌配置檔案 "一節中所學到的,將應用程式的日誌資訊傳送到Retrace的第一步是為Retrace在堆疊多通道中新增一個特定的日誌通道。 第一步。使用 composer 來安裝 Stackify Monolog 處理程式包用 composer require stackify/monolog "~2.X"安裝最新版本 。 或者你可以在你的 composer.json 檔案中新增一個依賴項 。
第二步。在環境變數檔案(.env)中設定各種Retrace變數關鍵變數是API金鑰、應用程式名稱和環境名稱。確保它們被設定在你的Laravel應用的.env檔案中。你應該為每個不同的.env檔案設定不同的值,這取決於你希望從哪個環境傳送日誌。 第3步.改變你的config/logging.php我們建議在5個不同的地方修改配置檔案, 我們用步驟3.1, 步驟3.2等符號將其分解成註釋. ``` // after the typical imports in the config file // Step 3.1 import the following and make sure you add use StackifyLogTransportExecTransport; use StackifyLogMonologHandler as StackifyHandler; // Step 3.2: assign your Retrace various variables as environment variable then call here $retrace_api_key = env('RETRACE_API_KEY', 'api_key'); // Step 3.3: create the transport instance here. You need this in Step 3.5 $transport_for_retrace = new ExecTransport($retrace_api_key); return [ // for brevity I removed the comments 'default' =>etrace/).Retrace允許你從你的日誌中收集洞察力, 給你一個單一的地方來執行 程式碼剖析, 效能監控 和 集中的日誌.
專門為Retrace設定一個通道正如你在 "解釋日誌配置檔案 "一節中所學到的,將應用程式的日誌資訊傳送到Retrace的第一步是為Retrace在堆疊多通道中新增一個特定的日誌通道。 第一步。使用 composer 來安裝 Stackify Monolog 處理程式包用 composer require stackify/monolog "~2.X"安裝最新版本 。 或者你可以在你的 composer.json 檔案中新增一個依賴項 。
第二步。在環境變數檔案(.env)中設定各種Retrace變數關鍵變數是API金鑰、應用程式名稱和環境名稱。確保它們被設定在你的Laravel應用的.env檔案中。你應該為每個不同的.env檔案設定不同的值,這取決於你希望從哪個環境傳送日誌。 第3步.改變你的config/logging.php我們建議在5個不同的地方修改配置檔案, 我們用步驟3.1, 步驟3.2等符號將其分解成註釋. ``` // after the typical imports in the config file // Step 3.1 import the following and make sure you add use StackifyLogTransportExecTransport; use StackifyLogMonologHandler as StackifyHandler; // Step 3.2: assign your Retrace various variables as environment variable then call here $retrace_api_key = env('RETRACE_API_KEY', 'api_key'); // Step 3.3: create the transport instance here. You need this in Step 3.5 $transport_for_retrace = new ExecTransport($retrace_api_key); return [ // for brevity I removed the comments 'default' => |
syslog從你的日誌中收集洞察力, 給你一個單一的地方來執行 程式碼剖析, 效能監控 和 集中的日誌.
專門為Retrace設定一個通道正如你在 "解釋日誌配置檔案 "一節中所學到的,將應用程式的日誌資訊傳送到Retrace的第一步是為Retrace在堆疊多通道中新增一個特定的日誌通道。 第一步。使用 composer 來安裝 Stackify Monolog 處理程式包用 composer require stackify/monolog "~2.X"安裝最新版本 。 或者你可以在你的 composer.json 檔案中新增一個依賴項 。
第二步。在環境變數檔案(.env)中設定各種Retrace變數關鍵變數是API金鑰、應用程式名稱和環境名稱。確保它們被設定在你的Laravel應用的.env檔案中。你應該為每個不同的.env檔案設定不同的值,這取決於你希望從哪個環境傳送日誌。 第3步.改變你的config/logging.php我們建議在5個不同的地方修改配置檔案, 我們用步驟3.1, 步驟3.2等符號將其分解成註釋. ``` // after the typical imports in the config file // Step 3.1 import the following and make sure you add use StackifyLogTransportExecTransport; use StackifyLogMonologHandler as StackifyHandler; // Step 3.2: assign your Retrace various variables as environment variable then call here $retrace_api_key = env('RETRACE_API_KEY', 'api_key'); // Step 3.3: create the transport instance here. You need this in Step 3.5 $transport_for_retrace = new ExecTransport($retrace_api_key); return [ // for brevity I removed the comments 'default' => | 用於向系統日誌傳送。使用 Monolog 的 SyslogHandler。ify.com/retrace-code-profiling/), 效能監控 和 集中的日誌.
專門為Retrace設定一個通道正如你在 "解釋日誌配置檔案 "一節中所學到的,將應用程式的日誌資訊傳送到Retrace的第一步是為Retrace在堆疊多通道中新增一個特定的日誌通道。 第一步。使用 composer 來安裝 Stackify Monolog 處理程式包用 composer require stackify/monolog "~2.X"安裝最新版本 。 或者你可以在你的 composer.json 檔案中新增一個依賴項 。
第二步。在環境變數檔案(.env)中設定各種Retrace變數關鍵變數是API金鑰、應用程式名稱和環境名稱。確保它們被設定在你的Laravel應用的.env檔案中。你應該為每個不同的.env檔案設定不同的值,這取決於你希望從哪個環境傳送日誌。 第3步.改變你的config/logging.php我們建議在5個不同的地方修改配置檔案, 我們用步驟3.1, 步驟3.2等符號將其分解成註釋. ``` // after the typical imports in the config file // Step 3.1 import the following and make sure you add use StackifyLogTransportExecTransport; use StackifyLogMonologHandler as StackifyHandler; // Step 3.2: assign your Retrace various variables as environment variable then call here $retrace_api_key = env('RETRACE_API_KEY', 'api_key'); // Step 3.3: create the transport instance here. You need this in Step 3.5 $transport_for_retrace = new ExecTransport($retrace_api_key); return [ // for brevity I removed the comments 'default' =>om/retrace-code-profiling/), 效能監控 和 集中的日誌.
專門為Retrace設定一個通道正如你在 "解釋日誌配置檔案 "一節中所學到的,將應用程式的日誌資訊傳送到Retrace的第一步是為Retrace在堆疊多通道中新增一個特定的日誌通道。 第一步。使用 composer 來安裝 Stackify Monolog 處理程式包用 composer require stackify/monolog "~2.X"安裝最新版本 。 或者你可以在你的 composer.json 檔案中新增一個依賴項 。
第二步。在環境變數檔案(.env)中設定各種Retrace變數關鍵變數是API金鑰、應用程式名稱和環境名稱。確保它們被設定在你的Laravel應用的.env檔案中。你應該為每個不同的.env檔案設定不同的值,這取決於你希望從哪個環境傳送日誌。 第3步.改變你的config/logging.php我們建議在5個不同的地方修改配置檔案, 我們用步驟3.1, 步驟3.2等符號將其分解成註釋. ``` // after the typical imports in the config file // Step 3.1 import the following and make sure you add use StackifyLogTransportExecTransport; use StackifyLogMonologHandler as StackifyHandler; // Step 3.2: assign your Retrace various variables as environment variable then call here $retrace_api_key = env('RETRACE_API_KEY', 'api_key'); // Step 3.3: create the transport instance here. You need this in Step 3.5 $transport_for_retrace = new ExecTransport($retrace_api_key); return [ // for brevity I removed the comments 'default' => |
錯誤日誌rofiling/), 效能監控 和 集中的日誌.
專門為Retrace設定一個通道正如你在 "解釋日誌配置檔案 "一節中所學到的,將應用程式的日誌資訊傳送到Retrace的第一步是為Retrace在堆疊多通道中新增一個特定的日誌通道。 第一步。使用 composer 來安裝 Stackify Monolog 處理程式包用 composer require stackify/monolog "~2.X"安裝最新版本 。 或者你可以在你的 composer.json 檔案中新增一個依賴項 。
第二步。在環境變數檔案(.env)中設定各種Retrace變數關鍵變數是API金鑰、應用程式名稱和環境名稱。確保它們被設定在你的Laravel應用的.env檔案中。你應該為每個不同的.env檔案設定不同的值,這取決於你希望從哪個環境傳送日誌。 第3步.改變你的config/logging.php我們建議在5個不同的地方修改配置檔案, 我們用步驟3.1, 步驟3.2等符號將其分解成註釋. ``` // after the typical imports in the config file // Step 3.1 import the following and make sure you add use StackifyLogTransportExecTransport; use StackifyLogMonologHandler as StackifyHandler; // Step 3.2: assign your Retrace various variables as environment variable then call here $retrace_api_key = env('RETRACE_API_KEY', 'api_key'); // Step 3.3: create the transport instance here. You need this in Step 3.5 $transport_for_retrace = new ExecTransport($retrace_api_key); return [ // for brevity I removed the comments 'default' => | 用於傳送至網路伺服器的錯誤日誌。使用 Monolog 的 ErrorLogHandler。ation-performance-management/) 和 集中的日誌.
專門為Retrace設定一個通道正如你在 "解釋日誌配置檔案 "一節中所學到的,將應用程式的日誌資訊傳送到Retrace的第一步是為Retrace在堆疊多通道中新增一個特定的日誌通道。 第一步。使用 composer 來安裝 Stackify Monolog 處理程式包用 composer require stackify/monolog "~2.X"安裝最新版本 。 或者你可以在你的 composer.json 檔案中新增一個依賴項 。
第二步。在環境變數檔案(.env)中設定各種Retrace變數關鍵變數是API金鑰、應用程式名稱和環境名稱。確保它們被設定在你的Laravel應用的.env檔案中。你應該為每個不同的.env檔案設定不同的值,這取決於你希望從哪個環境傳送日誌。 第3步.改變你的config/logging.php我們建議在5個不同的地方修改配置檔案, 我們用步驟3.1, 步驟3.2等符號將其分解成註釋. ``` // after the typical imports in the config file // Step 3.1 import the following and make sure you add use StackifyLogTransportExecTransport; use StackifyLogMonologHandler as StackifyHandler; // Step 3.2: assign your Retrace various variables as environment variable then call here $retrace_api_key = env('RETRACE_API_KEY', 'api_key'); // Step 3.3: create the transport instance here. You need this in Step 3.5 $transport_for_retrace = new ExecTransport($retrace_api_key); return [ // for brevity I removed the comments 'default' =>-performance-management/) 和 集中的日誌.
專門為Retrace設定一個通道正如你在 "解釋日誌配置檔案 "一節中所學到的,將應用程式的日誌資訊傳送到Retrace的第一步是為Retrace在堆疊多通道中新增一個特定的日誌通道。 第一步。使用 composer 來安裝 Stackify Monolog 處理程式包用 composer require stackify/monolog "~2.X"安裝最新版本 。 或者你可以在你的 composer.json 檔案中新增一個依賴項 。
第二步。在環境變數檔案(.env)中設定各種Retrace變數關鍵變數是API金鑰、應用程式名稱和環境名稱。確保它們被設定在你的Laravel應用的.env檔案中。你應該為每個不同的.env檔案設定不同的值,這取決於你希望從哪個環境傳送日誌。 第3步.改變你的config/logging.php我們建議在5個不同的地方修改配置檔案, 我們用步驟3.1, 步驟3.2等符號將其分解成註釋. ``` // after the typical imports in the config file // Step 3.1 import the following and make sure you add use StackifyLogTransportExecTransport; use StackifyLogMonologHandler as StackifyHandler; // Step 3.2: assign your Retrace various variables as environment variable then call here $retrace_api_key = env('RETRACE_API_KEY', 'api_key'); // Step 3.3: create the transport instance here. You need this in Step 3.5 $transport_for_retrace = new ExecTransport($retrace_api_key); return [ // for brevity I removed the comments 'default' => |
monologent/) 和 集中的日誌.
專門為Retrace設定一個通道正如你在 "解釋日誌配置檔案 "一節中所學到的,將應用程式的日誌資訊傳送到Retrace的第一步是為Retrace在堆疊多通道中新增一個特定的日誌通道。 第一步。使用 composer 來安裝 Stackify Monolog 處理程式包用 composer require stackify/monolog "~2.X"安裝最新版本 。 或者你可以在你的 composer.json 檔案中新增一個依賴項 。
第二步。在環境變數檔案(.env)中設定各種Retrace變數關鍵變數是API金鑰、應用程式名稱和環境名稱。確保它們被設定在你的Laravel應用的.env檔案中。你應該為每個不同的.env檔案設定不同的值,這取決於你希望從哪個環境傳送日誌。 第3步.改變你的config/logging.php我們建議在5個不同的地方修改配置檔案, 我們用步驟3.1, 步驟3.2等符號將其分解成註釋. ``` // after the typical imports in the config file // Step 3.1 import the following and make sure you add use StackifyLogTransportExecTransport; use StackifyLogMonologHandler as StackifyHandler; // Step 3.2: assign your Retrace various variables as environment variable then call here $retrace_api_key = env('RETRACE_API_KEY', 'api_key'); // Step 3.3: create the transport instance here. You need this in Step 3.5 $transport_for_retrace = new ExecTransport($retrace_api_key); return [ // for brevity I removed the comments 'default' => | 用於使用Monolog支援的任何其他處理程式。.com/retrace-log-management/).
專門為Retrace設定一個通道正如你在 "解釋日誌配置檔案 "一節中所學到的,將應用程式的日誌資訊傳送到Retrace的第一步是為Retrace在堆疊多通道中新增一個特定的日誌通道。 第一步。使用 composer 來安裝 Stackify Monolog 處理程式包用 composer require stackify/monolog "~2.X"安裝最新版本 。 或者你可以在你的 composer.json 檔案中新增一個依賴項 。
第二步。在環境變數檔案(.env)中設定各種Retrace變數關鍵變數是API金鑰、應用程式名稱和環境名稱。確保它們被設定在你的Laravel應用的.env檔案中。你應該為每個不同的.env檔案設定不同的值,這取決於你希望從哪個環境傳送日誌。 第3步.改變你的config/logging.php我們建議在5個不同的地方修改配置檔案, 我們用步驟3.1, 步驟3.2等符號將其分解成註釋. ``` // after the typical imports in the config file // Step 3.1 import the following and make sure you add use StackifyLogTransportExecTransport; use StackifyLogMonologHandler as StackifyHandler; // Step 3.2: assign your Retrace various variables as environment variable then call here $retrace_api_key = env('RETRACE_API_KEY', 'api_key'); // Step 3.3: create the transport instance here. You need this in Step 3.5 $transport_for_retrace = new ExecTransport($retrace_api_key); return [ // for brevity I removed the comments 'default' =>retrace-log-management/).
專門為Retrace設定一個通道正如你在 "解釋日誌配置檔案 "一節中所學到的,將應用程式的日誌資訊傳送到Retrace的第一步是為Retrace在堆疊多通道中新增一個特定的日誌通道。 第一步。使用 composer 來安裝 Stackify Monolog 處理程式包用 composer require stackify/monolog "~2.X"安裝最新版本 。 或者你可以在你的 composer.json 檔案中新增一個依賴項 。
第二步。在環境變數檔案(.env)中設定各種Retrace變數關鍵變數是API金鑰、應用程式名稱和環境名稱。確保它們被設定在你的Laravel應用的.env檔案中。你應該為每個不同的.env檔案設定不同的值,這取決於你希望從哪個環境傳送日誌。 第3步.改變你的config/logging.php我們建議在5個不同的地方修改配置檔案, 我們用步驟3.1, 步驟3.2等符號將其分解成註釋. ``` // after the typical imports in the config file // Step 3.1 import the following and make sure you add use StackifyLogTransportExecTransport; use StackifyLogMonologHandler as StackifyHandler; // Step 3.2: assign your Retrace various variables as environment variable then call here $retrace_api_key = env('RETRACE_API_KEY', 'api_key'); // Step 3.3: create the transport instance here. You need this in Step 3.5 $transport_for_retrace = new ExecTransport($retrace_api_key); return [ // for brevity I removed the comments 'default' => |
自定義gement/).
專門為Retrace設定一個通道正如你在 "解釋日誌配置檔案 "一節中所學到的,將應用程式的日誌資訊傳送到Retrace的第一步是為Retrace在堆疊多通道中新增一個特定的日誌通道。 第一步。使用 composer 來安裝 Stackify Monolog 處理程式包用 composer require stackify/monolog "~2.X"安裝最新版本 。 或者你可以在你的 composer.json 檔案中新增一個依賴項 。
第二步。在環境變數檔案(.env)中設定各種Retrace變數關鍵變數是API金鑰、應用程式名稱和環境名稱。確保它們被設定在你的Laravel應用的.env檔案中。你應該為每個不同的.env檔案設定不同的值,這取決於你希望從哪個環境傳送日誌。 第3步.改變你的config/logging.php我們建議在5個不同的地方修改配置檔案, 我們用步驟3.1, 步驟3.2等符號將其分解成註釋. ``` // after the typical imports in the config file // Step 3.1 import the following and make sure you add use StackifyLogTransportExecTransport; use StackifyLogMonologHandler as StackifyHandler; // Step 3.2: assign your Retrace various variables as environment variable then call here $retrace_api_key = env('RETRACE_API_KEY', 'api_key'); // Step 3.3: create the transport instance here. You need this in Step 3.5 $transport_for_retrace = new ExecTransport($retrace_api_key); return [ // for brevity I removed the comments 'default' => | 一個呼叫指定工廠的驅動,為第三方服務建立一個通道。yteimg.com/tos-cn-i-k3u1fbpfcp/658b4ddbea4b428598f21931ca8671af~tplv-k3u1fbpfcp-zoom-1.image)
專門為Retrace設定一個通道正如你在 "解釋日誌配置檔案 "一節中所學到的,將應用程式的日誌資訊傳送到Retrace的第一步是為Retrace在堆疊多通道中新增一個特定的日誌通道。 第一步。使用 composer 來安裝 Stackify Monolog 處理程式包用 composer require stackify/monolog "~2.X"安裝最新版本 。 或者你可以在你的 composer.json 檔案中新增一個依賴項 。
第二步。在環境變數檔案(.env)中設定各種Retrace變數關鍵變數是API金鑰、應用程式名稱和環境名稱。確保它們被設定在你的Laravel應用的.env檔案中。你應該為每個不同的.env檔案設定不同的值,這取決於你希望從哪個環境傳送日誌。 第3步.改變你的config/logging.php我們建議在5個不同的地方修改配置檔案, 我們用步驟3.1, 步驟3.2等符號將其分解成註釋. ``` // after the typical imports in the config file // Step 3.1 import the following and make sure you add use StackifyLogTransportExecTransport; use StackifyLogMonologHandler as StackifyHandler; // Step 3.2: assign your Retrace various variables as environment variable then call here $retrace_api_key = env('RETRACE_API_KEY', 'api_key'); // Step 3.3: create the transport instance here. You need this in Step 3.5 $transport_for_retrace = new ExecTransport($retrace_api_key); return [ // for brevity I removed the comments 'default' =>g.com/tos-cn-i-k3u1fbpfcp/658b4ddbea4b428598f21931ca8671af~tplv-k3u1fbpfcp-zoom-1.image)
專門為Retrace設定一個通道正如你在 "解釋日誌配置檔案 "一節中所學到的,將應用程式的日誌資訊傳送到Retrace的第一步是為Retrace在堆疊多通道中新增一個特定的日誌通道。 第一步。使用 composer 來安裝 Stackify Monolog 處理程式包用 composer require stackify/monolog "~2.X"安裝最新版本 。 或者你可以在你的 composer.json 檔案中新增一個依賴項 。
第二步。在環境變數檔案(.env)中設定各種Retrace變數關鍵變數是API金鑰、應用程式名稱和環境名稱。確保它們被設定在你的Laravel應用的.env檔案中。你應該為每個不同的.env檔案設定不同的值,這取決於你希望從哪個環境傳送日誌。 第3步.改變你的config/logging.php我們建議在5個不同的地方修改配置檔案, 我們用步驟3.1, 步驟3.2等符號將其分解成註釋. ``` // after the typical imports in the config file // Step 3.1 import the following and make sure you add use StackifyLogTransportExecTransport; use StackifyLogMonologHandler as StackifyHandler; // Step 3.2: assign your Retrace various variables as environment variable then call here $retrace_api_key = env('RETRACE_API_KEY', 'api_key'); // Step 3.3: create the transport instance here. You need this in Step 3.5 $transport_for_retrace = new ExecTransport($retrace_api_key); return [ // for brevity I removed the comments 'default' =>/tos-cn-i-k3u1fbpfcp/658b4ddbea4b428598f21931ca8671af~tplv-k3u1fbpfcp-zoom-1.image)
專門為Retrace設定一個通道正如你在 "解釋日誌配置檔案 "一節中所學到的,將應用程式的日誌資訊傳送到Retrace的第一步是為Retrace在堆疊多通道中新增一個特定的日誌通道。 第一步。使用 composer 來安裝 Stackify Monolog 處理程式包用 composer require stackify/monolog "~2.X"安裝最新版本 。 或者你可以在你的 composer.json 檔案中新增一個依賴項 。
第二步。在環境變數檔案(.env)中設定各種Retrace變數關鍵變數是API金鑰、應用程式名稱和環境名稱。確保它們被設定在你的Laravel應用的.env檔案中。你應該為每個不同的.env檔案設定不同的值,這取決於你希望從哪個環境傳送日誌。 第3步.改變你的config/logging.php我們建議在5個不同的地方修改配置檔案, 我們用步驟3.1, 步驟3.2等符號將其分解成註釋. ``` // after the typical imports in the config file // Step 3.1 import the following and make sure you add use StackifyLogTransportExecTransport; use StackifyLogMonologHandler as StackifyHandler; // Step 3.2: assign your Retrace various variables as environment variable then call here $retrace_api_key = env('RETRACE_API_KEY', 'api_key'); // Step 3.3: create the transport instance here. You need this in Step 3.5 $transport_for_retrace = new ExecTransport($retrace_api_key); return [ // for brevity I removed the comments 'default' =>i-k3u1fbpfcp/658b4ddbea4b428598f21931ca8671af~tplv-k3u1fbpfcp-zoom-1.image)
專門為Retrace設定一個通道正如你在 "解釋日誌配置檔案 "一節中所學到的,將應用程式的日誌資訊傳送到Retrace的第一步是為Retrace在堆疊多通道中新增一個特定的日誌通道。 第一步。使用 composer 來安裝 Stackify Monolog 處理程式包用 composer require stackify/monolog "~2.X"安裝最新版本 。 或者你可以在你的 composer.json 檔案中新增一個依賴項 。
第二步。在環境變數檔案(.env)中設定各種Retrace變數關鍵變數是API金鑰、應用程式名稱和環境名稱。確保它們被設定在你的Laravel應用的.env檔案中。你應該為每個不同的.env檔案設定不同的值,這取決於你希望從哪個環境傳送日誌。 第3步.改變你的config/logging.php我們建議在5個不同的地方修改配置檔案, 我們用步驟3.1, 步驟3.2等符號將其分解成註釋. ``` // after the typical imports in the config file // Step 3.1 import the following and make sure you add use StackifyLogTransportExecTransport; use StackifyLogMonologHandler as StackifyHandler; // Step 3.2: assign your Retrace various variables as environment variable then call here $retrace_api_key = env('RETRACE_API_KEY', 'api_key'); // Step 3.3: create the transport instance here. You need this in Step 3.5 $transport_for_retrace = new ExecTransport($retrace_api_key); return [ // for brevity I removed the comments 'default' => 處理程式在通道和驅動之後,你需要學習的下一件重要事情是處理程式的概念。 Monolog有一個 完整的 處理程式列表, 用於傳送日誌。你甚至可以使用特殊的處理程式,這樣你就可以建立更高階的日誌策略。這裡有一個Monolog處理程式的列表,分為以下幾種型別。
另外,請注意,有一個特殊的選項叫做 handler_with ,它允許你為各個處理程式的構造方法賦值。 例如,當你看 SysLogHandler 類和 它的建構函式時,你會注意到這個。
在各個通道的配置中,你可以這樣為構造器的引數賦值。
3.編寫日誌資訊和級別如果你已經走到了這一步,恭喜你!你現在已經深入到了細節中。你現在已經深入瞭解了Laravel日誌的配置檔案的細節。大多數開發人員對此只有粗略的瞭解,並沒有讓這阻止他們編寫日誌資訊。因此, 在為你的團隊配置Laravel日誌時, 你現在比大多數開發者更有能力. 一個關鍵的配置細節是 水平。這一方面是因為上一節已經夠長了, 但主要是因為在這裡介紹級別更有意義. 日誌的級別在你想寫日誌資訊的具體檔案中,確保在寫出日誌資訊之前匯入Log facade,像這樣。 ``` use IlluminateSupportFacadesLog; //.. and then somewhere in your php file Log::emergency($message); Log::alert($message); Log::critical($message); Log::error($message); Log::warning($message); Log::notice($message); Log::info($message); Log::debug($message); ``` 通常情況下,當涉及到日誌資訊時,開發人員希望有不同的嚴重程度。這裡所說的不同的日誌級別對應於 RFC-5424規範。所以這些級別和它們的名字不是隨意決定的,有一個優先順序的順序,最高的是 緊急 ,最低的是 除錯。在通道列表中,你可以指定 單個通道記錄任何訊息的最低 級別。 日誌門面傳送至預設通道級別並不是決定Laravel最終是否會寫一個特定的訊息到通道的唯一因素。通道作為一個目標也是另一個因素。請 記住,當你使用Log facade來寫日誌資訊時,Laravel會把這些資訊傳送到 你的 config/logging.php 中的 預設通道。 如果你不改變日誌配置檔案, 並假設你沒有將LOG_CHANNEL環境變數設定為不同的值, 你的預設通道將是堆疊的 "多通道", 這又包括了 "每日 "通道. 實時傳送日誌資訊到其他通道這就引出了一個問題:如果你想把一個特定的訊息傳送到預設通道以外的通道怎麼辦?你可以通過這種方式特意在飛行中選擇一個替代通道。
記住,要確保你選擇的替代通道存在於日誌配置檔案的通道列表中。否則,你會遇到錯誤。在上面的例子中,這意味著你需要在通道列表中明確宣告一個名為 可疑的通道 。 而如果你想向多個渠道傳送相同的日誌資訊,你也可以執行 "堆疊"。
傳送上下文資訊有時你想傳送上下文資訊,如具體的檔名、檔案中的行,甚至是當前登入的使用者。 你可以這樣編寫你的個別日誌資訊,以增加上下文資訊。
這個命令將傳入一個數組的上下文資料給日誌方法.然後Laravel將格式化上下文資料並與日誌資訊一起顯示. 4.格式化日誌資訊這個關於格式化的部分可以放在 "解釋日誌配置檔案 "下的驅動和處理程式部分旁邊.在這裡,我們讓 "格式化日誌資訊 "成為獨立的部分,放在其他內容之後,因為它往往不是那麼關鍵。 格式化不那麼重要的主要原因是,你可以使用Monolog驅動使用的預設格式化器--Monolog LineFormatter。這通常是足夠好的。然而,有時你可能希望定製傳遞給處理程式的格式。這是一個 Monolog原生提供的格式化器的完整列表 。值得注意的是,Monolog將這個列表按照最高的使用頻率排列,所以如果你想選擇替代方案,這是一個很好的參考列表。 當你想自定義格式化時,你需要 在特定的通道配置下 設定 格式化 選項。你還會注意到 formatter_with 選項,它的工作方式與 "處理程式 "一節中解釋的 handler_with 選項 相似 。 handler_with 選項是一種向格式化器類構造方法傳送值的方法。下面是一個例子,我們使用第二種最流行的格式化器,HtmlFormatter。
> 有時一個特定的 Monolog 處理程式會有它自己的格式化器。在這種情況下,你可以簡單地指示格式化器使用該處理器的預設格式。 如果你使用的 Monolog 處理程式能夠提供它自己的格式器,你可以把格式器配置選項的值設為預設。
5.把它放在一起:把你的日誌傳送給Retrace這裡是壓軸戲,你可以把你在前幾節學到的東西都用在一個練習中。在這一節中, 我們嘗試將Laravel的日誌資訊傳送到Netreo Retrace.Retrace允許你從你的日誌中收集洞察力, 給你一個單一的地方來執行 程式碼剖析, 效能監控 和 集中的日誌.
專門為Retrace設定一個通道正如你在 "解釋日誌配置檔案 "一節中所學到的,將應用程式的日誌資訊傳送到Retrace的第一步是為Retrace在堆疊多通道中新增一個特定的日誌通道。 第一步。使用 composer 來安裝 Stackify Monolog 處理程式包用 composer require stackify/monolog "~2.X"安裝最新版本 。 或者你可以在你的 composer.json 檔案中新增一個依賴項 。
第二步。在環境變數檔案(.env)中設定各種Retrace變數關鍵變數是API金鑰、應用程式名稱和環境名稱。確保它們被設定在你的Laravel應用的.env檔案中。你應該為每個不同的.env檔案設定不同的值,這取決於你希望從哪個環境傳送日誌。 第3步.改變你的config/logging.php我們建議在5個不同的地方修改配置檔案, 我們用步驟3.1, 步驟3.2等符號將其分解成註釋. ``` // after the typical imports in the config file // Step 3.1 import the following and make sure you add use StackifyLogTransportExecTransport; use StackifyLogMonologHandler as StackifyHandler; // Step 3.2: assign your Retrace various variables as environment variable then call here $retrace_api_key = env('RETRACE_API_KEY', 'api_key'); // Step 3.3: create the transport instance here. You need this in Step 3.5 $transport_for_retrace = new ExecTransport($retrace_api_key); return [ // for brevity I removed the comments 'default' => env('LOG_CHANNEL', 'stack'), 'channels' => [ 'stack' => [ 'driver' => 'stack', // Step 3.4 add retrace channel to stack 'channels' => ['daily', 'retrace'], ], // Step 3.5 setting up the retrace channel 'retrace' => [ 'driver' => 'monolog', 'level' => 'debug', 'handler' => StackifyHandler::class, // for clarity on the exact configuration look at the constructor method at // http://github.com/stackify/stackify-log-monolog/blob/master/src/Stackify/Log/Monolog/Handler.php#L20 'handler_with' => [ 'appName' => env('RETRACE_APP_NAME', 'app_name'), 'environmentName' => env('RETRACE_ENV_NAME', 'env_name'), 'transport' => $transport_for_retrace, // set in Step 3.3 ] ], // the rest of the channel list such as daily, syslog, etc are below ``` 從上面的程式碼來看,步驟3.1到3.4是不言自明的。最複雜的將是步驟3.5,在這裡我們建立一個全新的 回溯 通道。因為Retrace有一個與Monolog相容的處理程式,我們建議使用Monolog驅動並在 處理程式 選項 下使用Retrace Monolog處理程式類 。另外,為 handler_with 選項 選擇的可能的鍵 遵循給handler的 構造方法的 相同引數名稱 。 回顧一下嗚呼!這是一個相當全面的Laravel日誌的研究。回顧一下, 我們已經討論了什麼是Monolog,以及為什麼Laravel要使用它來做日誌記錄。我們還探討了Monolog的一些錯綜複雜的概念, 包括通道, 驅動, 和處理程式.此外, 我們還廣泛地介紹了日誌資訊的編寫和格式化.我們舉例說明了如何寫到預設通道或其他通道,最後,把所有這些概念結合起來,教你如何寫一個通道, 把你的日誌傳送到Retrace。 你對使用Retrace進行Laravel日誌記錄感興趣嗎?抓住 免費的14天的試用期 與Stackify Retrace 免費試用14天! 關於Kim Sia這篇文章的作者是KimSia。KimSia以T.J. Simmons的名字寫作。他在五年前開始了自己的開發公司,為那些被太多Excel電子表格壓得喘不過氣來的電信和金融業專業人士建立解決方案。他現在精通檔案生成和從不同來源提取資料的自動化。
|
- Python的Requests庫
- 從零開始建立一個視覺搜尋引擎還值得嗎?
- Laravel日誌教程
- 自動平行停車。路徑規劃、路徑跟蹤和控制
- 機器學習中主要使用的監督學習演算法
- 我為Shopify建立了世界上最快的產品評論應用程式
- 如何使用Apache Camel來表達REST服務?
- 如何在Oracle表中進行關鍵詞搜尋?
- 什麼是結對程式設計?
- 5個適合初學者的初級網路安全工作
- 如何在Python中列印斜體文字?
- [已解決] AttributeError: 不能在python中設定屬性
- 如何使用Pandas head()函式(附示例)
- 用NATS JetStream在Java中進行非同步的Pub/Sub資訊傳遞
- Logback HTMLLayout
- java 中用 Logback 遮蔽敏感資料
- 相關性不是因果關係......或者是嗎?
- 將TensorFlow擴充套件到每秒3億次預測的經驗之談
- Node.js效能監控
- 5大Node.js效能測量指標