2012-04-16 38 views
1

FIREBREATH 1.6 - VC2010 - 沒有使用FBLOG_TRACE(「StaticInitialize()」,「INIT-trace」)進行日誌記錄。FBLOG_TRACE()不記錄到日誌文件 - FBLOG_INFO()記錄確定 - 什麼是差異

設置

outMethods.push_back(標準:: make_pair(FB ::登錄:: LogMethod_File, 「U:/logs/PT.log」)); ... FB ::登錄:: LogLevel的getLogLevel(){ 回報FB ::登錄:: LogLevel_Trace; ...


改變 「FBLOG_TRACE」 到 「FBLOG_INFO」 記錄到日誌文件的工作。我不明白原因。

回答

2

功能並不在其各自的插入區域

FB::Log::LogLevel getLogLevel(){ 
    return FB::Log::LogLevel_Trace; // Now Trace and above is logged. 
} 

詳細描述記錄here

啓用日誌記錄 ...

  1. 使用準備*腳本

  2. 在您的項目開拓Factory.cpp再生項目。您需要定義的類定義內的下列功能爲PluginFactory:

...

關於日誌級別

...

如果你想更改日誌級別,您需要在Factory中定義以下內容。cpp:

參照上面的那個意思是某處在「Factory.cpp」中。那是不正確的。描述應該說 - >

如果要更改日誌級別,您需要定義以下功能類定義內的PluginFactory:

我拖累了它Factory.cpp的」底部「到類PluginFactory中。 現在它按預期工作!

+0

對不起,我想我假設了一個高水平的C++經驗。我指定你應該重寫該方法,這意味着它應該在你的工廠類中。這當然可以放在你的.cpp文件中,但它當然也需要在類頭文件中定義。這是標準的C++實踐。 – taxilian 2012-04-22 02:57:28

+1

很久以前,我認識到非常仔細地閱讀說明書是件好事。對我來說,它是**之間的區別**在Factory.cpp **中定義以下內容並在PluginFactory **的類定義內定義以下函數。與高水平的C++經驗無關**。只要按照說明。我看到你在github中更改代碼的速度有多快。所以請阻止其他用戶指出錯誤的方向。更改**在Factory.cpp **中定義以下內容以在PluginFactory **的類定義內定義以下函數。請。它花費我2天。 ;) – 2012-04-22 06:55:29

+2

FireBreath.org是一個wiki;歡迎您親自更新! (我發現,如果我做所有更新,人們永遠不會學習如何,我會花時間主要修復錯誤,而不是寫文檔;我認爲讓人們使用系統來幫助解決這個問題是一個小的代價,花費在維護項目上) – taxilian 2012-04-22 15:06:11

1

具有不同日誌級別(FBLOG_FATAL,FBLOG_ERROR,FBLOG_WARN,FBLOG_INFO,FBLOG_DEBUG,FBLOG_TRACE)的整個目的是讓您可以配置使用哪個級別,並且隱藏低於該級別的任何級別。在FireBreath默認的日誌級別是FB ::登錄:: LogLevel_Info,這意味着沒有低於INFO(如DEBUG或者TRACE)將是可見的。

您可以通過在工廠類中重寫FB :: FactoryBase :: getLogLevel()返回FB ::登錄:: LogLevel_Trace改變這一點。

你是壓倒一切的方法是:https://github.com/firebreath/FireBreath/blob/master/src/PluginCore/FactoryBase.cpp#L78

的LogLevel枚舉的定義: https://github.com/firebreath/FireBreath/blob/master/src/ScriptingCore/logging.h#L69

有FireBreath的版本中並沒有工作;我認爲它是1.6.0固定的,但我不確定。如果不行嘗試更新到最新的1.6分支(這是目前1.6.1爲寫這篇文章的時間,但我還沒有找到時間尚未公佈)