rust庫學習-env_logger

来源:https://www.cnblogs.com/blackTree/archive/2022/07/20/16497670.html
-Advertisement-
Play Games

介紹 env_logger 配合 log 庫使用, log 是rust日誌庫的外觀庫,給日誌庫提供抽象的記錄介面, log使用巨集,如info!() trace!()記錄日誌 假如需要替換當前使用的日誌庫,只需將初始化相關的代碼和toml文件修改 env_logger 通過配置環境變數中 RUST_L ...


介紹

env_logger 配合 log 庫使用,

log 是rust日誌庫的外觀庫,給日誌庫提供抽象的記錄介面,

log使用巨集,如info!() trace!()記錄日誌

假如需要替換當前使用的日誌庫,只需將初始化相關的代碼和toml文件修改

env_logger 通過配置環境變數中 RUST_LOG 實現日誌過濾

實踐

Cargo.toml

[dependencies]
log = "0.4"
env_logger = "0.9"

main.rs

use std::env::set_var;
use log::{debug, error, log_enabled, info, Level};

fn main() {
    
    set_var("RUST_LOG", "debug");
    env_logger.init();
    //env_logger::builder().format_timestamp(None).init();
    debug!("this is a debug {}", "message");
    error!("this is printed by default");
    
    if log_enabled!(Level::Info) {
        let x = 3 * 4; // expensive computation
        info!("the answer was: {}", x);
    }
}

過濾規則

set_var 配置環境變數 RUST_LOG 的過濾規則

  1. 過濾日誌等級(debug,error...)

    set_var("RUST_LOG", "debug");

  2. 過濾哪個文件的日誌(工程名::模塊::文件名=level),

        .\baseframe\
        |-- Cargo.lock
        |-- Cargo.toml
        |-- diesel.toml
        `-- src
            |-- main.rs
            `-- module
                |-- mod.rs
            `-- test.rs
    

    列印test文件輸出的所有等級的日誌

    set_var("RUST_LOG", "baseframe::module::test");

    列印全局 error 日誌和 test 中 info 等級以上的日誌

    set_var("RUST_LOG", "error,baseframe::module::test=info");

  3. 正則表達式過濾日誌

    set_var("RUST_LOG", "/正則表達式");

    列印包含"include"的日誌

    set_var("RUST_LOG", /include");

    過濾全局 error 日誌和 test 中 info 等級以上的日誌,列印包含include的日誌

    set_var("RUST_LOG", "error,baseframe::module::test=info/include");

自定義輸出格式

官方文檔


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 複合數據類型 數組 長度固定,有零個或者多個元素組成。 預設情況下,數組的每個元素都被初始化為元素類型零值。 如果數組的長度位置出現...,則表示數組長度是根據初始值的個數來計算。如:q := [...]int{1, 2, 3} 如果指定索引和對應值列表的方式初始化,這種情形下初始化索引的順序是無關 ...
  • 一、人生苦短,我用Python 1、案例背景 生成字母對並寫入文件,並將結果寫入文件中。 文件中每行為: ab cd ef gh 2、主要知識點 文件讀寫 基礎語法 zip 函數 字元串步長截取 3、素材 二、代碼展示 創建一個py文件夾 咱們先導入需要用的模塊 import platform im ...
  • 寫在前面 Facebook 開源的VideoPose3D模型致力於實現準確的人體骨骼3D重建。其效果令人驚嘆,只需要使用手機相機就可以實現相似的效果。 而一旦技術成熟,這種人體骨骼的三維重建在很多領域將會產生顛覆性的應用。 但是到目前為止,該技術還是有很多不足,其中制約該技術商業化運用的一個最大難點 ...
  • 一種簡單的實現方法 <?php //$file:圖片地址 //Filetype: JPEG,PNG,GIF $file = "test.jpeg"; $out_file = 'thumb_test.jpeg'; function thumb($file,$dw,$dh,$path){//這四個參數分 ...
  • 本來這段時間一直都在加緊我家“三胎”(易排通用智能規劃平臺)建設,畢竟我們的通用規劃平臺原定6月初就能上線,但因為其中遇到的各種技術問題及其它項目的突發情況,導致也只能跟隨國家的003號航母,只能推遲上線,進度緊迫。經過近兩個星期的奮戰,終於將我們的【易排通用智能規劃平臺】的主要功能上線了,並做了一 ...
  • 多商戶商城系統,也稱為B2B2C(BBC)平臺電商模式多商家商城系統。可以快速幫助企業搭建類似拼多多/京東/天貓/淘寶的綜合商城。 多商戶商城系統支持商家入駐加盟,同時滿足平臺自營、旗艦店等多種經營方式。平臺可以通過收取商家入駐費,訂單交易服務費,提現手續費,簡訊通道費等多手段方式,實現整體盈利。 ...
  • 1.認識 JDBCTemplate 1.瞭解 JDBC 學習使用 JDBCTempIate 之前,我們先來瞭解一下 JDBC( Java DataBase Connectivity )。 它是Java用於連接資料庫的規範,也就是用於執行資料庫SQL語句的Java API。從JDBC的名稱上看,它似乎 ...
  • 常用慢查詢分析工具 引言 在日常的業務開發中 MySQL 出現慢查詢是很常見的 大部分情況下會分為兩種情況 1、業務增長太快 2、要麼就是SQL 寫的太xx了 所以 對慢查詢 SQL 進行分析和優化很重要 其中 mysqldumpslow 是 MySQL 服務自帶的一款很好的分析調優工具 3.1 調 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...