zoukankan      html  css  js  c++  java
  • log的简单说明

    log的简单说明

    @(NS3相关)[core][log]

    NS3中的日志功能是非常完善与灵活,大家有需要显示一些调试或者警告信息时最好使用log,不再使用标准输入来输出中间信息。

    • 头文件:ns3/log.h
    • v2g/model中对应的cc文件注册对应的日志组件(一般一个类对应一个日志组件,如EvApp.cc中注册了“EvApp"日志组件
    • 注册了日志组件后,就可以在对应的源文件源文件中使用相关的宏写入日志信息。 具体包括:
    NS_LOG_ERROR();//写入LOG_LEVEL_ERROR级别的日志信息
    NS_LOG_WARN();//写入LOG_LEVEL_WARN级别日志信息
    NS_LOG_DEBUG();//写入LOG_LEVEL_DEBUG级别日志信息
    NS_LOG_INFO();//写入LOG_LEVEL_INFO级别日志信息
    NS_LOG_FUNCTION();//写入LOG_LEVEL_FUNCTION级别日志信息
    NS_LOG_LOGIC();//写入LOG_LEVEL_LOGIC级别日志信息

    使用这些宏就和使用标准输出一样,非常方便, 需要输出多个变量时,变量间用<<连接。示例如下

    int i
    NS_LOG_DEBUG(i);
    NS_LOG_DEBUG("Debug log");
    NS_LOG_INFO("info log:" << i <<" done");
    • 在脚本中使用LogComponentEnable宏来定义日志组件使能级别,即可控制输出信息。使能级别为LOG_LEVEL_INFO时,LOG_LEVEL_INFO以下(包括LOG_LEVEL_INFO)的相关日志信息都会输出。如
    //in exam-app.cc
    void ExamApp::Test()
    {
        NS_LOG_ERROR("NS_LOG_ERROR");
        NS_LOG_WARN("NS_LOG_WARN");
        NS_LOG_DEBUG("NS_LOG_DEBUG");
        NS_LOG_INFO("NS_LOG_INFO");
        NS_LOG_FUNCTION (this << "NS_LOG_FUNCTION ");
        NS_LOG_LOGIC("NS_LOG_LOGIC");
        std::cout << m_appId << std::endl;
    }
    
    //in test-exam-app.cc
    #include "ns3/exam-app.h"
    #include "ns3/log.h"
    
    using namespace ns3;
    
    int main()
    {
        LogComponentEnable ("ExamApp", LOG_LEVEL_FUNCTION);
        ExamApp a1("EV_1");
        a1.Test();
        return 0;
    }

    执行main函数,除了"NS_LOG_LOGIC"字符串不会输出外,其他都会输出。

  • 相关阅读:
    Codeforces Round #573 (Div. 2) C. Tokitsukaze and Discard Items
    Codeforces Round #573 (Div. 2) B
    练习2
    练习1
    上机练习4
    上机练习3
    上机练习1
    JAVA第一次作业
    es document的强制替换、创建、删除
    es 返回定制化的_source数据
  • 原文地址:https://www.cnblogs.com/rainySue/p/log-de-jian-dan-shuo-ming.html
Copyright © 2011-2022 走看看