Logging系统

1.概述

许多大型系统都支持某种消息记录工具,而ns-3也不例外。在某些情况下,只会将错误消息记录到“操作员控制台”(在基于Unix的系统中通常是stderr)。在其他系统中,可以输出警告消息以及更详细的信息消息。在某些情况下,日志记录工具用于输出调试消息,这些消息可以快速将输出变为模糊。

ns-3认为所有这些详细级别都很有用,我们为消息记录提供了一种可选择的多级方法。可以完全禁用日志记录,逐个组件启用或全局启用日志记录;它提供了可选择的详细级别。 ns-3日志模块提供了一种简单易用的方法,可以从模拟中获取有用的信息。

您应该了解我们提供了一个通用机制 - 跟踪 - 从模型中获取数据,这些数据应该是模拟输出的首选(有关我们的跟踪系统的更多详细信息,请参阅教程部分使用跟踪系统)。对于调试信息,警告,错误消息,或者您希望轻松从脚本或模型中快速发送消息的任何时间,应首选日志记录。

目前,系统中定义了七个级别日益增加的详细日志消息。

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_FUNCTION_NOARGS,用于静态函数);

LOG_LOGIC  - 记录描述函数内逻辑流的消息(相关宏:NS_LOG_LOGIC);

LOG_ALL  - 记录上面提到的所有内容(没有关联的宏)。

对于每个LOG_TYPE,还有LOG_LEVEL_TYPE,如果使用它,除了它的级别之外,还可以记录它上面的所有级别。 (因此,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宏提供的消息。

我们还提供始终显示的无条件记录宏,无论记录级别或组件选择如何。

NS_LOG_UNCOND  - 无条件地记录关联的消息(没有关联的日志级别)。

每个级别可以单独或累积请求;并且可以使用shell环境变量(NS_LOG)或通过记录系统函数调用来设置日志记录。正如本教程前面所见,日志记录系统具有Doxygen文档,如果您还没有这样做,现在是阅读日志记录模块文档的好时机。

现在您已经非常详细地阅读了文档,让我们使用一些知识从您已经构建的scratch / myfirst.cc示例脚本中获取一些有趣的信息。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • From:Python之日志处理(logging模块) - 云游道士 - 博客园 https://www.cnbl...
    vigny的先生阅读 2,703评论 3 5
  • 在应用程序中添加日志记录总的来说基于三个目的:监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析...
    时待吾阅读 5,081评论 1 13
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,437评论 0 9
  • error code(错误代码)=0是操作成功完成。error code(错误代码)=1是功能错误。error c...
    Heikki_阅读 3,452评论 1 9
  • 嘿;-)偶然发现这个app 不知怎的突然欣喜 好像提笔就能写的时光早就一去不复返 我恍惚 一下子回到了初中的时光 ...
    米粒儿在努力阅读 314评论 0 1