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 巨集來產生日誌...