1.概述
許多大型系統(tǒng)都支持某種消息記錄工具,而ns-3也不例外段磨。在某些情況下,只會將錯誤消息記錄到“操作員控制臺”(在基于Unix的系統(tǒng)中通常是stderr)。在其他系統(tǒng)中惶翻,可以輸出警告消息以及更詳細的信息消息。在某些情況下鹅心,日志記錄工具用于輸出調(diào)試消息吕粗,這些消息可以快速將輸出變?yōu)槟:?/p>
ns-3認為所有這些詳細級別都很有用,我們?yōu)橄⒂涗浱峁┝艘环N可選擇的多級方法旭愧÷睿可以完全禁用日志記錄,逐個組件啟用或全局啟用日志記錄;它提供了可選擇的詳細級別输枯。 ns-3日志模塊提供了一種簡單易用的方法议泵,可以從模擬中獲取有用的信息。
您應該了解我們提供了一個通用機制 - 跟蹤 - 從模型中獲取數(shù)據(jù)桃熄,這些數(shù)據(jù)應該是模擬輸出的首選(有關我們的跟蹤系統(tǒng)的更多詳細信息先口,請參閱教程部分使用跟蹤系統(tǒng))。對于調(diào)試信息瞳收,警告池充,錯誤消息,或者您希望輕松從腳本或模型中快速發(fā)送消息的任何時間缎讼,應首選日志記錄收夸。
目前,系統(tǒng)中定義了七個級別日益增加的詳細日志消息血崭。
LOG_ERROR? - 記錄錯誤消息(關聯(lián)的宏:NS_LOG_ERROR);
LOG_WARN? - 記錄警告消息(關聯(lián)的宏:NS_LOG_WARN);
LOG_DEBUG? - 記錄相對罕見的臨時調(diào)試消息(關聯(lián)的宏:NS_LOG_DEBUG);
LOG_INFO? - 記錄有關程序進度的信息性消息(相關宏:NS_LOG_INFO);
LOG_FUNCTION? - 記錄描述每個被調(diào)用函數(shù)的消息(兩個相關的宏:NS_LOG_FUNCTION卧惜,用于成員函數(shù)厘灼,NS_LOG_FUNCTION_NOARGS,用于靜態(tài)函數(shù));
LOG_LOGIC? - 記錄描述函數(shù)內(nèi)邏輯流的消息(相關宏:NS_LOG_LOGIC);
LOG_ALL? - 記錄上面提到的所有內(nèi)容(沒有關聯(lián)的宏)咽瓷。
對于每個LOG_TYPE设凹,還有LOG_LEVEL_TYPE,如果使用它茅姜,除了它的級別之外闪朱,還可以記錄它上面的所有級別。 (因此钻洒,LOG_ERROR和LOG_LEVEL_ERROR以及LOG_ALL和LOG_LEVEL_ALL在功能上是等效的奋姿。)例如,啟用LOG_INFO將僅啟用NS_LOG_INFO宏提供的消息素标,而啟用LOG_LEVEL_INFO還將啟用NS_LOG_DEBUG称诗,NS_LOG_WARN和NS_LOG_ERROR宏提供的消息。
我們還提供始終顯示的無條件記錄宏头遭,無論記錄級別或組件選擇如何寓免。
NS_LOG_UNCOND? - 無條件地記錄關聯(lián)的消息(沒有關聯(lián)的日志級別)。
每個級別可以單獨或累積請求;并且可以使用shell環(huán)境變量(NS_LOG)或通過記錄系統(tǒng)函數(shù)調(diào)用來設置日志記錄计维。正如本教程前面所見袜香,日志記錄系統(tǒng)具有Doxygen文檔,如果您還沒有這樣做鲫惶,現(xiàn)在是閱讀日志記錄模塊文檔的好時機困鸥。
現(xiàn)在您已經(jīng)非常詳細地閱讀了文檔,讓我們使用一些知識從您已經(jīng)構(gòu)建的scratch / myfirst.cc示例腳本中獲取一些有趣的信息剑按。