我們可以通過配置檔案,訓示程式在運作時進行日志參數配置:如日志重定向、輸出日志類型、輸出日志嚴重級别、日志檔案最大尺寸、日志輸出格式等等。
1、在應用程式所在目錄中建立svc.conf檔案,内容如下:
dynamic Logger Service_Object* ACE:_make_ACE_Logging_Strategy() "-s log.out -f STDERR|OSTREAM -p INFO|DEBUG|NOTICE|ERROR "
2、建立控制台項目Strategy_Practice,除Strategy_Practice.cpp外,删除其他自動生成的檔案:Strategy_Practice.cpp内容如下:(項目的設定請參照前面的文章說明,否則無法編譯)
// Strategy_Practice.cpp : 定義控制台應用程式的入口點。
//通過ACE日志政策進行運作時配置
// Strategy_Practice.cpp : 定義控制台應用程式的入口點。
//通過ACE日志政策進行運作時配置
#define ACE_NTRACE 0
#include "ace/Log_Msg.h"
#include "ace/service_config.h"//日志配置政策類
int ACE_TMAIN(int argc, ACE_TCHAR* argv[])
{
//打開日志配置檔案,預設是svc.conf,此檔案必須儲存在應用程式所在目錄下
if(ACE_Service_Config::open(argc,argv,ACE_DEFAULT_LOGGER_KEY,1,0,1)<0)
ACE_ERROR_RETURN((LM_ERROR,ACE_TEXT("%p/n"),ACE_TEXT("Service config open")),1);
ACE_TRACE(ACE_TEXT("main"));
ACE_DEBUG((LM_NOTICE,ACE_TEXT("%t%IHowdy Pardner/n")));
ACE_DEBUG((LM_INFO,ACE_TEXT("%t%IGoodnight/n")));
return 0;
}
關鍵是ACE_Service_Config::open(argc,argv,ACE_DEFAULT_LOGGER_KEY,1,0,1)
調用,預設打開svc.conf檔案,後面的日志釋出政策将依據此檔案中的配置資訊進行。