1、前言:
使用ACE日誌設施的主要宏如下:
ACE_DEBUG(常用):用於調試語句
ACE_ERROR(常用):用於警告和錯誤
ACE_TRACE:用於跟蹤資訊
2、建立控制台項目Log_Text(vs2008)
4、修改Log_Text.cpp檔案
// Log_Text.cpp : 定義控制台應用程式的進入點。<br />//</p><p>#include "stdafx.h"</p><p>#define ACE_NTRACE 0//是否可是使用宏ACE_TRACE 0 啟用,1 禁用,預設禁用<br />#include "ace/Log_Msg.h"</p><p>void foo(void);</p><p>int ACE_TMAIN(int, ACE_TCHAR *[])<br />{<br />ACE_TRACE(ACE_TEXT("MAIN"));<br />ACE_DEBUG((LM_INFO,ACE_TEXT("%t Hi Mom!/n")));<br />foo();<br />ACE_DEBUG((LM_INFO,ACE_TEXT("%I howdy pardner/n")));<br />system("pause");<br />return 0;<br />}</p><p>void foo(void)<br />{<br />ACE_TRACE(ACE_TEXT("foo"));<br />ACE_DEBUG((LM_INFO,ACE_TEXT("%I Howdy pardner/n")));<br />}
運行結果:
5、若想在vs2008中運行,必須修改項目屬性:
右鍵點擊項目-》屬性
(1)C/C++屬性
常規--附加元件封裝含目錄:$(ACE_ROOT)
代碼產生:多線程調試Dll(MDd)
(2)連結器
常規--附加庫目錄:$(ACE_ROOT)/lib
輸入--附加依賴項:ACEd.lib
進階--隨機基址:禁用映象隨機化
進階--資料執行防止:預設值
6、電腦環境變數
增加ACE_ROOT,設定其值為:D:/ACE_5.6/ACE_Wrappers
在Path變數中增加:D:/ACE_5.6/ACE_Wrappers/bin和D:/ACE_5.6
7、編譯項目
8、在控制台中執行Log_Text.exe輸出:
在項目中若沒有加入#define ACE_NTRACE 0,則運行結果為:
Hi Mom
Howdy Pardner
Goodnight
發現ACE_TRACE不起作用,查書,發現預設情況下該功能是關閉的,解決辦法:
可以使用一下兩種方法解決問題:
(1)、修改檔案代碼
#define ACE_NTRACE 0
#include "ace/Log_Msg.h"
在這要注意:#define ACE_NTRACE 0 必須在#include "ace/Log_Msg.h" 上面,否則ACE_TRACE還是不會起作用。
(2)、在編譯命令上增加定義宏的命令
可以增加如下選項 -DACE_NTRACE
小結:
1、#include "ace/Log_Msg.h"中包含很多宏,其中就包括ACE_DEBUG等大量的調試宏,可以令編程變得輕鬆。
2、ACE_Log _Msg::PROCESS---擷取或設定進程範圍的掩碼,會影響所以ACE_Log_Msg執行個體的日誌嚴重性ACE_Log_Msg::THREAD--線程專有掩碼設定,若是要在ACE_Log_Msg執行個體上設定個別的嚴重性掩碼時,這第二個參數就非常重要
參考:http://blog.csdn.net/sws9999/archive/2010/10/14/5940423.aspx