【ns-3】Logging系统

从零开始的ns3笔记(二):LOG功能和基础工具的学习 ns3的日志功能可以分为多个级别,全部禁用、逐个组件启用,或全局启用。对于每个LOG_TYPE,还有一个LOG_LEVEL_TYPE,如果使用它,日志除了记录当前其级别之外,还记录它上面的所有级别。此外还提供了NS_LOG_UNCOND,无条件地记录关联的消息可以使用或通过日志记录来调整日志记录的层级。以first.cc为例,初始代码如下:(原始情况设置指令为info等级)打印结果如下:可以看到相比于之前多了许多条消息通过命令行输入关闭之前配置的level_all属性,此时任何LOG信息都不再打印。 阅读详情
AI摘要

本文介绍了ns-3中的Logging系统,它提供了一种可选的、多等级的消息记录功能。日志组件是管理单位,允许精确到源代码文件。日志详细程度有7个级别,从LOG_ERROR到LOG_ALL,通过NS_LOG_MACRO系列宏控制。此外,日志前缀选项如LOG_PREFIX_FUNC和LOG_PREFIX_TIME帮助识别信息来源和严重性。控制日志输出可以通过LogComponentEnable函数或NS_LOG环境变量实现。

前言

本篇介绍Logging系统。


1. 概述

许多大型系统都会提供一种基于控制台的消息记录功能,用来向用户即时地反馈程序执行情况。ns-3也不例外。ns-3提供了一种可选的、多等级的消息记录功能—Logging系统。Logging功能可以被完全禁用,可以逐个组件启用,也可以全局启用。Logging系统还可以选择所记录消息的详细程度(verbosity level)或严重程度(severity level),以及为消息添加不同的前缀(prefix)。因此,Logging系统提供了一种非常灵活且功能强大,但使用相对简单的消息记录功能 [1] [2]。

需要说明的是,Logging系统在ns-3中主要用于:一是通过输出网络组件内部模块执行过程方便用户理解;二是通过输出简单的调试信息方便用户调试,而非收集仿真数据 [3]。ns-3提供了一种收集仿真数据的通用机制—Tracing系统,这是我们收集仿真数据的首选 [2]。


2. 基本概念

上面提到,Logging系统提供了一种非常灵活的消息记录功能,不仅可以逐个组件地启用Logging功能,还可以选择所记录消息的详细程度或严重程度,并为消息添加不同的前缀。

因此,在介绍如何使用Logging系统之前,在这一节,我们先介绍日志组件(Log Component)、控制日志输出的详细程度或严重程度选项以及前缀选项等基本概念。

2.1 日志组件

日志组件是Logging系统的最小管理单位。通俗地说,一个日志组件就是指一个C++源代码文件。通过日志组件,Logging系统就可以把信息输出控制精确到某一个C++文件 [1] [4]。

而要把一个C++文件添加为日志组件也很容易,只要在C++文件开头在ns3名字空间范围内使用NS_LOG_COMPONENT_DEFINE宏注册即可。日志组件名必须是全局唯一的(通常基于文件名或文件中定义的类的名)。

例如,在first.cc中LogComponentEnable()中的第一个参数即是日志组件名(关于LogComponentEnable函数我们会在后面再介绍),如下图所示:

在这里插入图片描述
UdpEchoClinetApplication日志组件和UdpEchoServerApplication日志组件代表的分别是udp-echo-client.cc文件和udp-echo-server.cc文件,是在各自文件开头在ns3名字空间范围内使用NS_LOG_COMPONENT_DEFINE宏注册的,如下图所示:

在这里插入图片描述
在这里插入图片描述
 

2.2 日志详细程度(严重程度)选项

上面说过,通过日志组件,Logging系统可以把信息输出控制精确到某一个C++文件。而通过日志详细程度(或严重程度)选项,Logging系统可以进一步把信息输出控制精确到某一个C++文件的某一层级。

ns-3中,Logging系统通常提供了7个日志详细程度(或严重程度)选项,输出信息的详细程度由低到高(即输出信息由少到多)或者说信息的严重程度由高到低依次为 [1]:

  • LOG_ERROR:记录错误信息(关联的宏为:NS_LOG_ERROR)
  • LOG_WARN:记录警告信息(关联的宏为:NS_LOG_WARN)
  • LOG_DEBUG:记录相对罕见、特别的调试消息(关联的宏为:NS_LOG_DEBUG)
  • LOG_INFO:记录程序进程相关的信息(关联的宏为:NS_LOG_INFO)
  • LOG_FUNCTION:记录描述每个调用函数的消息(关联的宏为:NS_LOG_FUNCTION和NS_LOG_
NS3 Logging Module 日志模块 一 概述日志 日志是快速获得脚本和模型的调试信息、警告信息、错误信息或者其他信息的首选。 NS3日志模块提供了一个直观的、相对简单的方法来获取仿真过程中的有用信息。 阅读详情

相关推荐

NS-3学习笔记 5

说明:今天学习《ns-3 tutorial》第7章 Tracing。7. Tracing7.1 Background运行NS-3模拟的落脚点是得到运行结果的输出,而获得输出有两类基本方法:1.使用通用的预定义的大量输出方法并解析输出内容,以获取感兴趣的信息;2.开发新的输出机制来获取感兴趣的信息。 方法1的好处是不需要改变ns3,但要求编写脚本解析和过滤兴趣数据,通常在脚本运行时,可以PCAP或N

hhhparty的博客 5437

ns-3中的数据跟踪与采集——Logging系统

Logging系统在ns-3中主要有2种应用:一是通过输出网络组件内部模块执行过程来方便用户理解,二是通过输出简单的调试信息来方便用户调试。本文内容包括:1)有效化系统记录模块2)通过环境变量修改系统等级3)添加附加前缀4)自定义Logging代码

寻同学的博客 1502

NS-3基础

节点 基本设备被抽象为节点,用C++的node类来描述。 NodeContainer类用于追踪一组节点指针,特别是在设备助手一次在多个节点安装设备,需要在大量的相同节点上安装设备。 // 新建两个节点对象 NodeContainer nodes; nodes.Create (2); 应用 需要被仿真的用户程序被抽象为应用,用C++的Aapplication类来描述。 UdpEchoClientA...

weixin_43431836的博客 550

【网络仿真】ns-3基础(上)

目标:看完《ns3》,重点:如何写拓扑、模块 1 ns-3初识 资料: ns-3官网:http://www.nsnam.org/ ns-3官方开发文档:https://www.nsnam.org/releases/ns-3-34/documentation/ ns-3维基百科(文档中没有的内容)、FAQ问题解答:https://www.nsnam.org/support/ ns-3相关文献:https://www.nsnam.org/education/ 2 ns-3快速上手 使用waf配置编译ns-3

bajiaoyu517的博客 7469

RK3308B开发板WiFi+蓝牙一体模组RTL8821CS驱动移植保姆级教程(含DTS配置与避坑点)

本文提供RK3308B开发板RTL8821CS WiFi+蓝牙模组驱动移植的完整教程,涵盖SDK环境配置、DTS设备树设置、内核编译优化及功能验证全流程。重点解析引脚复用冲突、电源管理等关键配置,并给出常见错误解决方案,帮助开发者快速实现双模通信功能。

weixin_42531163的博客 398

一文了解向量数据库在RAG中扮演的角色

向量数据库:AI新纪元的基石。探索如何通过这一创新技术优化RAG,提高语言模型的信息处理能力

2401_82452722的博客 2452

告别点不亮!STM32F103驱动HT1621段码屏的常见坑点与调试心得

本文详细解析了STM32F103驱动HT1621段码屏的五大常见问题及解决方案,包括硬件连接、时序控制、RAM地址映射等关键难点。通过实测数据和代码示例,帮助开发者快速排查显示异常问题,提升驱动开发效率。特别针对HT1621与STM32F103的兼容性问题提供了专业调试建议。

weixin_30925435的博客 378

【开源】基于TI ADS1299与ESP32的8通道脑电采集设备YuEEG全解析

本文详细解析了基于TI ADS1299芯片与ESP32主控的开源8通道脑电采集设备YuEEG。内容涵盖硬件设计、固件驱动开发及Python上位机软件实现,提供了从电路连接、SPI通信配置到数据读取与实时波形显示的全套教程。该项目为学习脑机接口(BCI)与高精度生物电信号采集提供了完整的开源解决方案,适合创客、学生及嵌入式开发者实践。

weixin_42576410的博客 1243

汽车诊断服务(UDS——0x11服务解析)

ECU复位服务(0x11)详解:该服务支持硬件/钥匙开关/软件三种复位类型(0x01-0x03),复位前需发送肯定响应。请求格式为11+子功能,响应含51+子功能。典型应用需配合安全访问流程,测试时需监控CAN总线通信及DTC状态。复位后ECU将返回默认会话,期间不处理任何诊断请求。服务在编程会话且安全解锁后执行,硬复位会初始化存储数据。

从事汽车行业 979

从 SAP_FLP_USER 到项目落地:把 SAP S/4HANA 中的 SAP Fiori 授权体系真正讲透

SAP Fiori授权体系涉及前端访问、应用入口和后台业务对象三层权限,仅配置基础角色如SAP_FLP_USER无法满足实际业务需求。项目实践中常见用户能看到应用磁贴但无法访问数据的问题,多因授权模型设计不完整所致。SAP建议采用分层授权策略:基础层确保launchpad访问能力,业务层配置具体应用权限。管理员角色SAP_FLP_ADMIN需结合业务权限使用,测试时可临时配置S_SERVICE=*权限,但生产环境应遵循最小权限原则。完整的授权设计需参考SAP Fiori Apps Reference Lib

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 132

【ARMv8 异常模型入门及渐进7 - GIC及安全中断介绍】

GIC-v3中,引入了支持2种安全状态(secure state),也就是对于中断,根据secure状态,分为安全中断和非安全中断。当然也可以只支持一种安全状态。这里的2种安全状态和1种安全状态,主要是影响中断分组,所使用IRQ和FIQ管脚的映射,以及gic中的寄存器访问。

CodingCos的博客 2116

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

上一篇: 【ns-3】添加nr(5G-LENA)模块
下一篇: 【ns-3】打开PyViz可视化工具
大笨牛@
博客等级 码龄12年 313粉丝 46原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值