風 的ACE筆記 1 日誌訊息管理

2021-04-20 20:49:23 字數 1741 閱讀 1324

ace提供了非常靈活、方便的日誌管理和訊息輸出功能,下面就一些簡單和直接的功能做乙個簡單介紹

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"

intace_tmain (int, ace_tchar *)

好了,上面就是ace日記管理功能中的九牛一毛,還有更多的功能,

我將會在ace技巧和ace應用文章寫出;

如通過命令列引數來配置日誌引數輸出、怎麼通過配置檔案來配置日誌 等文章

風 的ACE筆記 1 日誌訊息管理

這是我的第一篇ace文章,希望大家能夠喜歡 ace提供了非常靈活 方便的日誌管理和訊息輸出功能,下面就一些簡單和直接的功能做乙個簡單介紹 ace debug 常規的一些輸出訊息 ace error 會提供程式出錯的一些低階訊息 2個巨集的用法上是一致的 ace debug 錯誤級別,格式串 變數1....

ACE筆記 1 日誌訊息管理

ace 提供了非常靈活 方便的日誌管理和訊息輸出功能,下面就一些簡單和直接的功能做乙個簡單介紹 ace debug 常規的一些輸出訊息 ace error 會提供程式出錯的一些低階訊息 2個巨集的用法上是一致的 ace debug 錯誤級別,格式串 變數1 變數n 其中部分錯誤級別系統定義如下 lm...

ROS學習筆記3 日誌訊息

1 日誌訊息 ros日誌系統的核心思想就是使程式生成一些簡單的文字字元流。這些日誌訊息分為五個不同的嚴重級別 debug info warn error fatal其中,debug最為常見,fatal是嚴重錯誤,導致程式無法執行。其它則在這兩者之間。日誌訊息的生成 總共有5個基本的c 巨集來產生日誌...