简介

  • mongoose 日志相关函数
  • Mongoose为日志记录提供了一系列函数和宏。应用程序可以为自己的目的使用这些函数,也可以使用Mongoose API的其他部分。

LOG

  • 简介:
    • 日志宏
  • 原型:
    1
    2
    3
    4
    5
    
    #define LOG(level, args)
    #define MG_ERROR(args) MG_LOG(MG_LL_ERROR, args)
    #define MG_INFO(args) MG_LOG(MG_LL_INFO, args)
    #define MG_DEBUG(args) MG_LOG(MG_LL_DEBUG, args)
    #define MG_VERBOSE(args) MG_LOG(MG_LL_VERBOSE, args)
    
  • 示例:
    1
    
    MG_INFO(("Hello %s!", "world"));  // Output "Hello, world"
    

mg_log_set

  • 简介:
    • 设置Mongoose日志级别
  • 原型:
    1
    
    void mg_log_set(const char *spec);
    
  • 参数:
    • spec – 字符串,包含日志级别,可以是以下值之一
      • 0 – 关闭日志
      • 1 – 仅输出错误
      • 2 – 输出错误和消息
      • 3 – 输出错误,消息和调试消息
      • 4 – 输出所有日志信息
  • 返回值:
  • 详解:
    • 可以根据源文件覆盖日志级别。例如,如果有一个名为foo.c的文件,您希望将全局级别设置为2(info),但将foo.c文件的日志级别提高到debug,那么规格应该是 “2,foo.c=3”。可以有多个以逗号分隔的重写。
  • 示例:
    1
    2
    
    mg_log_set("2");                  // Set log level to info
    mg_log_set("2,foo.c=3,bar.c=0");  // Set log level to info, with overrides
    

mg_hexdump

  • 简介:
    • 记录二进制数据buf, len的十六进制转储。
  • 原型:
    1
    
    void mg_hexdump(const void *buf, int len);
    
  • 参数:
    • buf – 数据指针
    • len – 数据大小
  • 返回值:
  • 示例:
    1
    
    mg_hexdump(c->recv.buf, c->recv.len);  // Hex dump incoming data
    

mg_log_set_fn

  • 简介:
    • 将日志重定向到自定义函数。
  • 原型:
    1
    
    void mg_log_set_fn(mg_pfn_t logfunc, void *param);
    
  • 参数:
    • logfunc – 记录单个字符的函数指针
    • param – 日志函数参数
  • 示例:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    static void mylog(char ch, void *param) {
    static char buf[256];
    static size_t len;
    buf[len++] = ch;
    if (ch == '\n' || len >= sizeof(buf)) {
      syslog(LOG_INFO, "%.*s", (int) len, buf); // Send logs
      len = 0;
    }
    }
    ...
    mg_log_set_fn(mylog, NULL);