![在 syslog 中写入包含 \n \t 的字符串](https://linux22.com/image/195166/%E5%9C%A8%20syslog%20%E4%B8%AD%E5%86%99%E5%85%A5%E5%8C%85%E5%90%AB%20%5Cn%20%5Ct%20%E7%9A%84%E5%AD%97%E7%AC%A6%E4%B8%B2.png)
有谁知道是否可以编写一个包含字符\n
和\t
in 的字符串syslog
?
我使用了 C 程序,并尝试创建一个包含\n
和 的字符串变量\t
。然后我尝试了cat
该syslog
文件,结果不是我想要的。在系统日志中,这些字符被替换为#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;
}
这是我之后得到cat
的syslog
:
test: My message is: This is the first line#012 This is the second line#012 #011This is the third line
这是我想要得到cat
的syslog
:
test: My message is: This is the first line
This is the second line
This is the third line
答案1
系统日志消息是隐式的一条线。如果您想要多行,请发送多条系统日志消息,或者最好使消息更短。由于系统日志格式(例如日期和时间格式)是可配置的,因此您无法在发送器中正确设置缩进。