ACE DEBUG介紹及日誌輸出

2021-08-22 19:56:05 字數 1609 閱讀 2171

ace_debug 常規的一些輸出訊息

ace_error 會提供程式出錯的一些低階訊息

2個巨集的用法上是一致的

ace_debug(錯誤級別,"格式串",變數1...變數n)

其中部分錯誤級別系統定義如下:

lm_shutdown = 01,系統宕機級別

lm_trace = 02,跟蹤級別

lm_debug = 04,debug級別

lm_info = 010,常規資訊級別

lm_notice = 020,注意級別

lm_warning = 040,警告級別

lm_startup = 0100,啟動級別

lm_error = 0200,錯誤級別

lm_critical = 0400,危急級別

lm_alert = 01000,可修復的警告級別

lm_emergency = 02000,全域性警告級別

部分格式串使用如下:

跟c 中printf使用類似

%n-表當前程式名稱

%t-表當前執行緒號

%p-表指標

%s-字串

ace通過全域性單體例項 ace_log_msg 管理和控制輸出,我們可以利用這個例項把輸出重定向

到檔案,也可以重定向到標誌輸出

其中還可以控制什麼級別的訊息可被輸出,簡單使用如下:

ace_log_msg->set_flags (ace_log_msg::stderr);

設定輸出到標準錯誤輸出

ace_log_msg->clr_flags (ace_log_msg::stderr);

關閉輸出到標誌錯誤輸出

ace_log_msg->set_flags (ace_log_msg::ostream);

ofstream myostream (filename, ios::out | ios::trunc);

ace_log_msg->msg_ostream (&myostream);

設定輸出到檔案

u_long priority_mask =ace_log_msg->priority_mask (ace_log_msg::process);

ace_set_bits (priority_mask,lm_debug |lm_info);

設定只記錄lm_debug 或者lm_info級別的訊息

ace_clr_bits (priority_mask,lm_debug | lm_info);

清除設定條件

ace_log_msg還有乙個非常有意思的功能,能以16進製制方式輸出記憶體中的塊 ,簡單使用如下:

ace_log_msg->log_hexdump (lm_debug,

(char *) array,

sizeof array);

下面附上乙個使用例子,例子**於ace包中的例子程式

#include "ace/os_main.h"

#include "ace/streams.h"

#include "ace/log_msg.h"

int

ace_tmain (int, ace_tchar *)

HAProxy 日誌輸出及配置

正所謂,沒有軟體敢說沒有bug,人無完人,software is not perfect software。是軟體就可能存在bug,那麼如果出現bug,我們就要分析對我們業務的影響及可能如何避免bug的再現。haproxy也不例外,也可能在特殊場景下出現bug,因此我們就有必要記錄下必要的日誌資訊。...

httpclient及http日誌輸出

目錄 httpclient及http日誌輸出 借助logbook輸出http日誌 pom新增logbook依賴 工程新增logbook filter以輸出日誌 在服務提供工程新增logbook filter以輸出日誌和服務消費者工程httpclient新增logbook 說明 1 logbook的依...

scrapy log日誌的配置及輸出

原文 1 在配置檔案中設定日誌輸出檔名和日誌等級 1 為什麼以日期為檔名?因為這樣可以方便開發者檢視每天的日誌資訊,同時也可以防止單檔案log日誌資訊堆積的越來越多,所以將當天日誌資訊儲存到當天的日誌檔案中 2 配置選項有日誌等級log level 日誌檔案路徑log file,我這裡設定等級為wa...