在 syslog 中写入包含 \n \t 的字符串

在 syslog 中写入包含 \n \t 的字符串

有谁知道是否可以编写一个包含字符\n\tin 的字符串syslog

我使用了 C 程序,并尝试创建一个包含\n和 的字符串变量\t。然后我尝试了catsyslog文件,结果不是我想要的。在系统日志中,这些字符被替换为#012#011。我确实找到了一些使用正则表达式的脚本,以便以愉快的方式读取该文件,但这不是我需要的。我需要的是在系统日志中写入具有指定标识的字符串。

这是我想做的一个例子:

#include <syslog.h>
#include <stdio.h>

int main()
{
    char *myMessage = "This is the first line\n This is the second line\n \tThis is the third line\n";
    syslog(LOG_ERR, "My message is: %s", myMessage);

    return 0;
}

这是我之后得到catsyslog

test: My message is: This is the first line#012 This is the second line#012 #011This is the third line 

这是我想要得到catsyslog

test: My message is: This is the first line
This is the second line
    This is the third line

答案1

系统日志消息是隐式的一条线。如果您想要多行,请发送多条系统日志消息,或者最好使消息更短。由于系统日志格式(例如日期和时间格式)是可配置的,因此您无法在发送器中正确设置缩进。

相关内容