zoukankan      html  css  js  c++  java
  • ACE_DEBUG buffer

    ACE中输出日志时,发现太长会被截断。

    1.测试

    
    
    char buf[5000] = {0};
    ACE_OS::memset(buf,'a', 4999);
    
    ACE_DEBUG((LM_INFO,
            ACE_TEXT("##@@##[ %s ]##@@##
    "), 
            buf));

    结果显示:

     超过4096个字节被截断

    2.在ACE_Log_Msg中使用了 宏ACE_MAXLOGMSGLEN,其定义如下。

    // Max size of an ACE Log Record data buffer.  This can be reset in
    // the config.h file if you'd like to increase or decrease the size.
    # if !defined (ACE_MAXLOGMSGLEN)
    #   define ACE_MAXLOGMSGLEN 4 * 1024
    # endif /* ACE_MAXLOGMSGLEN */

    3. config.h中修改buffer size

    4.分段打印

    void EpgWebTask::PrintBigMsg(const ACE_UINT8 *payload, ACE_UINT32 payload_len)
    {
        const int max_len = 1024 * 2;
        char buf[max_len + 1] = {0};

    int part = 0; while(payload_len > max_len * part) { ACE_OS::memset(buf, 0, sizeof(buf)); ACE_OS::snprintf(buf, sizeof(buf),"%s", payload + max_len * part); ACE_DEBUG((LM_INFO, ACE_TEXT("EpgWebTask::PrintBigMsg (part %d) ${ %s }$ "), part, buf)); part++; } }
  • 相关阅读:
    Java 学习资料
    01 html5
    vscode 插件推荐
    08 css高级
    07 css定位
    06 css布局浮动
    05 css盒子
    04 css复合选择器 标签 行高
    03 css字体样式
    02 css基础选择器
  • 原文地址:https://www.cnblogs.com/iclk/p/3672545.html
Copyright © 2011-2022 走看看