NS3的記錄系統

2021-06-13 09:26:29 字數 2009 閱讀 3857

ns-3中的logging component簡介

很多大型的系統都會支援「記錄功能」(logging facility), ns-3也同樣如此。不同的是其他的系統可能只記錄一些「警告資訊」(warning messages)、「錯誤資訊」(error messages)或者「查錯資訊」(debug messages)。

但是ns-3提供多層次的可選擇的資訊記錄功能。

ns-3提供7個層次的資訊記錄:

•log_error — 記錄錯誤資訊 (相關聯的巨集: ns_log_error);

• log_warn — 記錄警告資訊(相關聯的巨集: ns_log_warn);

• log_debug — 記錄相對少的自適應(ad-hoc)查錯資訊(相關聯的巨集: ns_log_debug);

• log_info — 記錄程式執行的資訊(相關聯的巨集: ns_log_info);

• log_function — 記錄描述被呼叫的函式的資訊(兩個相關聯的巨集:ns_log_function, 用於成員函式, and ns_log_function_noargs, 用於靜態方程);

• log_logic – log messages describing logical flow within a function (相關聯的巨集: ns_log_logic);

• log_all — log everything mentioned above (沒有相關聯的巨集).

層次記錄型別:

log_info 只啟用ns_log_info 這個巨集

log_level_info 啟用三個巨集: ns_log_debug, ns_log_warn, ns_log_error

ns_log_uncond  無條件的記錄相關資訊

2. 例子

first.cc 這個**裡本身呼叫了記錄功能(log_level_info)記錄client和server的資訊。

這裡介紹一種在sh-like shell environment 中進行修改logging component

語法:sh-like shell:    "varable=value"

csh-like shell:  "setenv variable value"

a) //這個命令在目錄ns-3-dev下和ns-3-allinone下執行都是有效的,但是./waf需要在ns-3-dev目錄下執行才是有效的

結果:

注意: 此處用單引號是為了與c++中的scope operator區分開

用or operation還增加操作

b) 對比兩個不同的命令

加單引號是因為避免『豎線  |』和unix中 pipe connector 混淆,在這裡『|』表示or operation。

區別:所有涉及到

log component

的資訊都會加上方程的字首

現在為加字首的就是來自的了

c) 顯示模擬時間

對不同的函式進行操作,中間用單引號隔開

結果:

分析:

d) 記錄所有資訊並生成輸出檔案

命令:export 』ns_log=*=level_all|prefix_func|prefix_time』

用萬用字元替換被操作函式

./waf --run scratch/myfirst > log.out 2>&1

制定輸出檔案,然後在編輯器中開啟,搜尋想要找到資訊,用於debugg.

問題:檔案儲存到**了

答: 就在幹操作目錄下 檔名為log.out的檔案

NS3安裝記錄

環境 ubuntu16 lts ns3.3 寫在前面 ns 3 從 ns 3.30 這個版本開始預設使用 python 3,但是之前的版本都是預設使用 python 2,所以大家根據自己安裝的版本進行選擇。如果選擇使用 python 2,那麼把下面所有的 python3 都換成 python 即可,...

ns3相關記錄

2.ofswitch13 for ns3 二.執行 1.列印所有模組下的log日誌。1 在終端輸入 export ns log level all 2 在終端輸入執行語句 waf run scratch wzx mptcp logsdn all.out 注意 前面不能加 sudo 命令 3 waf ...

NS3筆記 初識NS3編譯執行

開始學習ns 3,按照官網的教程一步步安裝完成後 終於可以試試第乙個程式了.1.編譯系統 waf ns 3採用waf進行編譯,這個是用python開發的編譯管理系統 猜測應該是提供了不少現成的ns 3的python介面,交給waf管理,這樣程式設計的工作就少了很多了.2.開發環境 ns 3提供了py...