美文网首页
2.ns3的日志(转载)

2.ns3的日志(转载)

作者: 岳麓山鸡王 | 来源:发表于2018-09-27 13:46 被阅读0次

    转载自:http://blog.sina.com.cn/s/blog_7ec2ab360102wx5z.html

    export NS_LOG="MpTcpCrypto:MpTcpFullMesh:MpTcpMapping:MpTcpNdiffPorts:MpTcpSchedulerRoundRobin:MpTcpSocketBase:MpTcpSubflow:TcpOptionMpTcp:TcpSocketBase:TcpTxBuffer"

    export NS_LOG="MpTcpHeader:MpTcpL4Protocol:MpTcpSocketBase:MpTcpTypeDefs:MpTcpPacketSink:TcpRxBuffer:TcpTxBuffer:TcpSocketBase:FirstMultipathToplogy"

    NS3中的日志信息默认是输出到terminal的,可以采用以下方法将信息重定向到文件中。

    ./waf --run scratch/myprogram>& log.out

    LOG_ERROR— Log error messages (associated macro: NS_LOG_ERROR);

    LOG_WARN— Log warning messages (associated macro: NS_LOG_WARN);

    LOG_DEBUG— Log relatively rare, ad-hoc debugging messages (associated macro: NS_LOG_DEBUG);

    LOG_INFO— Log informational messages about program progress (associated macro: NS_LOG_INFO);

    LOG_FUNCTION— Log a message describing each function called (two associated macros: NS_LOG_FUNCTION, used for member functions, and NS_LOG_FUNCTION_NOARGS, used for static functions);

    LOG_LOGIC– Log messages describing logical flow within a function (associated macro: NS_LOG_LOGIC);

    LOG_ALL— Log everything mentioned above (no associated macro)

    在仿真过程中发生了很多你所没有看到的事情。现在可以很容易的打开系统的日志组件,察看整个过程了。现在试着设置NS_LOG变量为:

    $ export 'NS_LOG=*=level_all|prefix_func|prefix_time' //*是日志组件通配符,这将打开仿真过程中使用的所有日志。

    可以将这些信息重定向到一个文件,并且用自己喜欢的编辑器打开查看。

    $ ./waf --run scratch/first>log.out 2>&1 //重定向到log.out文件中。 2>$1表示将一个标准错误输出重定向到标准输出。

    可以通过几个宏调用日志组件给仿真增加新的日志功能。

    例如在first.cc中,我们已经定义了一个组件:

    NS_LOG_COMPONENT_DEFINE("FirstScriptExample");

    我们已经了解了通过设置NS_LOG环境变量来给组件启用日志功能。我们可以给脚本增加一些日志功能。用来增加信息级别的日志消息的宏是NS_LOG_INFO。

    现在我们来增加一个日志消息,显示本脚本在“创建拓扑”:

    打开scratch/first.cc文件并且在

    NodeContainer nodes;

    nodes,Create(2);

    之前加上一行:

    NS_LOG_INFO ("Creating Topology");

    用waf编译脚本并且清楚NS_LOG环境变量,来关掉之前启用的日志文件

    $ ./waf

    $ export NS_LOG=

    然后运行脚本,但是看不到新的日志消息,那是因为与它相关的日志组件(FirstScriptExample)没有被启用。为了看到该日志的消息,必须使用大于或等于NS_LOG_INFO的日志级别来启用FirstScriptExample日志组件。如果只是想要看某个级别的日志,你可以通过下面的语句来启用它,

    $ export NS_LOG=FirstScriptExample=info

    再运行脚本,可以看到“Creating Topology”的日志消息。

    相关文章

      网友评论

          本文标题:2.ns3的日志(转载)

          本文链接:https://www.haomeiwen.com/subject/tivjoftx.html