ACE筆記 1 日誌訊息管理

2021-04-26 20:25:31 字數 2319 閱讀 1940

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 debug 常規的一些輸出訊息 ace error 會提供程式出錯的一些低階訊息 2個巨集的用法上是一致的 ace debug 錯誤級別,格式串 變數1.變數n 其中部分錯誤級別系統定義如下 lm ...

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

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

ROS學習筆記3 日誌訊息

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