ns3的输入输出奥秘(一) LOGGING系统

1.LOGGING系统

(1)在我们之前对C++的理解,输出好像就是cout,然而

以myfirst.cc为例子

在我们前面的编写的代码中并没有出现cout,那他是如何输出。

可以回忆一下

LogComponentEnable ("UdpEchoClientApplication", LOG_LEVEL_INFO);
  LogComponentEnable ("UdpEchoServerApplication", LOG_LEVEL_INFO);

这两个语句,使名为"UdpEchoClientApplication"以及"UdpEchoServerApplication"的日志组件生效,并设置级别为LOG_LEVEL_INFO

经过看书《ns-3网络模拟器的基础与应用》了解到 LOGGING系统一共有7个等级由低到高

ns3的输入输出奥秘(一) LOGGING系统

我们设置的级别越高输出的结果就越详细,一般以我们的需求设置级别。

(2)如果想从命令行直接设置我们所需求的级别,则可以通export命令修改我们的NS_LOG环境变量,达到不用修改代码也可以设置我们想要的到输出的详细程度。

export 'NS_LOG=UdpEchoClientApplication=level_all:
               UdpEchoSeverApplication=level_all'

值得注意的是与上面的区别就是这里level_all是小写,上面代码中则是大写。

还可以添加其他的

例如

export 'NS_LOG=UdpEchoClientApplication=level_all|prefix_func|prefix_time:
               UdpEchoSeverApplication=level_all|prefix_func|prefix_time'

prefix_func即可以看到每条信息他所产生的函数是什么;

prefix_time可以每条信息产生的时间如图

ns3的输入输出奥秘(一) LOGGING系统

(3)自定义自己的日志组件

之前在myfirst.cc中曾出现这样的语句,向系统注册一个日志组件,名为:FirstScriptExample

NS_LOG_COMPONENT_DEFINE ("FirstScriptExample");

后面他几乎毫无用处。

接下来我们可以以下代码让他生效

LogComponentEnable("FirstScriptExample",LOG_LEVEL_INFO);

或者

export 'NS_LOG=FirstScriptExample=level_info'

在代码中可以添加

NS_LOG_INFO("xxx");

我们可以用这样的语句来观察输出自己的那一部分的功能开始启动的标志。

原文链接: https://www.cnblogs.com/wpqwpq/p/5677517.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/237144

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月13日 下午5:17
下一篇 2023年2月13日 下午5:17

相关推荐