1.概述
許多大型系統(tǒng)都支持某種消息記錄工具,而ns-3也不例外。在某些情況下,只會(huì)將錯(cuò)誤消息記錄到“操作員控制臺(tái)”(在基于Unix的系統(tǒng)中通常是stderr)。在其他系統(tǒng)中,可以輸出警告消息以及更詳細(xì)的信息消息。在某些情況下,日志記錄工具用于輸出調(diào)試消息,這些消息可以快速將輸出變?yōu)槟:?/p>
ns-3認(rèn)為所有這些詳細(xì)級(jí)別都很有用,我們?yōu)橄⒂涗浱峁┝艘环N可選擇的多級(jí)方法??梢酝耆萌罩居涗?,逐個(gè)組件啟用或全局啟用日志記錄;它提供了可選擇的詳細(xì)級(jí)別。 ns-3日志模塊提供了一種簡(jiǎn)單易用的方法,可以從模擬中獲取有用的信息。
您應(yīng)該了解我們提供了一個(gè)通用機(jī)制 - 跟蹤 - 從模型中獲取數(shù)據(jù),這些數(shù)據(jù)應(yīng)該是模擬輸出的首選(有關(guān)我們的跟蹤系統(tǒng)的更多詳細(xì)信息,請(qǐng)參閱教程部分使用跟蹤系統(tǒng))。對(duì)于調(diào)試信息,警告,錯(cuò)誤消息,或者您希望輕松從腳本或模型中快速發(fā)送消息的任何時(shí)間,應(yīng)首選日志記錄。
目前,系統(tǒng)中定義了七個(gè)級(jí)別日益增加的詳細(xì)日志消息。
LOG_ERROR? - 記錄錯(cuò)誤消息(關(guān)聯(lián)的宏:NS_LOG_ERROR);
LOG_WARN? - 記錄警告消息(關(guān)聯(lián)的宏:NS_LOG_WARN);
LOG_DEBUG? - 記錄相對(duì)罕見(jiàn)的臨時(shí)調(diào)試消息(關(guān)聯(lián)的宏:NS_LOG_DEBUG);
LOG_INFO? - 記錄有關(guān)程序進(jìn)度的信息性消息(相關(guān)宏:NS_LOG_INFO);
LOG_FUNCTION? - 記錄描述每個(gè)被調(diào)用函數(shù)的消息(兩個(gè)相關(guān)的宏:NS_LOG_FUNCTION,用于成員函數(shù),NS_LOG_FUNCTION_NOARGS,用于靜態(tài)函數(shù));
LOG_LOGIC? - 記錄描述函數(shù)內(nèi)邏輯流的消息(相關(guān)宏:NS_LOG_LOGIC);
LOG_ALL? - 記錄上面提到的所有內(nèi)容(沒(méi)有關(guān)聯(lián)的宏)。
對(duì)于每個(gè)LOG_TYPE,還有LOG_LEVEL_TYPE,如果使用它,除了它的級(jí)別之外,還可以記錄它上面的所有級(jí)別。 (因此,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宏提供的消息。
我們還提供始終顯示的無(wú)條件記錄宏,無(wú)論記錄級(jí)別或組件選擇如何。
NS_LOG_UNCOND? - 無(wú)條件地記錄關(guān)聯(lián)的消息(沒(méi)有關(guān)聯(lián)的日志級(jí)別)。
每個(gè)級(jí)別可以單獨(dú)或累積請(qǐng)求;并且可以使用shell環(huán)境變量(NS_LOG)或通過(guò)記錄系統(tǒng)函數(shù)調(diào)用來(lái)設(shè)置日志記錄。正如本教程前面所見(jiàn),日志記錄系統(tǒng)具有Doxygen文檔,如果您還沒(méi)有這樣做,現(xiàn)在是閱讀日志記錄模塊文檔的好時(shí)機(jī)。
現(xiàn)在您已經(jīng)非常詳細(xì)地閱讀了文檔,讓我們使用一些知識(shí)從您已經(jīng)構(gòu)建的scratch / myfirst.cc示例腳本中獲取一些有趣的信息。