Linux / Unix Syslog使用ACE将不需要的字符写入日志消息

问题描述 投票:0回答:1

我使用ACE函数ACE_Log_Msg()将日志消息发送到多线程环境中的linux syslog。

在大约5%的日志消息中,我的syslog输出中出现了不需要的额外字符。我用来向ACE发送日志消息的代码如下:

#include "ace/Log_Msg.h"

ACE_Mutex syslog_mtx;
int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
{
  ACE_Guard<ACE_Mutex> mtx (syslog_mtx);

  ACE_LOG_MSG->open (argv[0], ACE_Log_Msg::SYSLOG, ACE_TEXT ("syslogTest"));

  ACE_DEBUG ((LM_INFO, ACE_TEXT (L"my log message\n")));

  ACE_LOG_MSG->open (argv[0], ACE_Log_Msg::STDERR, ACE_TEXT ("syslogTest"));

  return 0;
}

我在syslog中看到的日志消息如下所示:

Oct 9 15:25:20 SYSLOG ~[62266]: my log message
Oct 9 15:25:20 SYSLOG ``[62266]: 6]: my log message

如您所见,额外的字符:〜,``,6]:似乎插入了应用程序名称/进程ID以syslog格式显示的位置。我似乎无法理解该bug的可能来源。我很乐意听取有关可能原因的建议。

linux rsyslog ace
1个回答
0
投票

L之前移除了"my log message",ACE_TEXT已经处理过了

© www.soinside.com 2019 - 2024. All rights reserved.