syslog에 \n \t를 포함하는 문자열을 작성합니다.

syslog에 \n \t를 포함하는 문자열을 작성합니다.

\n문자 를 포함하는 문자열을 작성하는 \t것이 가능한지 아는 사람이 있습니까 syslog?

C 프로그램을 사용하여 및 가 \n포함된 문자열 변수를 만들려고 했습니다 \t. 그런 다음 cat파일을 시험해 보았지만 syslog결과는 내가 원하는 것과 달랐습니다. 시스템 로그에서 이러한 문자는 #012및 로 대체됩니다 #011. 정규식을 사용하여 파일을 유쾌한 방식으로 읽는 일부 스크립트를 찾았지만 그것은 나에게 필요한 것이 아닙니다. 나에게 필요한 것은 시스템 로그에 지정된 ID를 가진 문자열을 작성하는 것입니다.

내가 하고 싶은 일의 예는 다음과 같습니다.

#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

Syslog 메시지는 암시적입니다.한 줄. 여러 줄을 원할 경우 여러 syslog 메시지를 보내거나 메시지를 더 짧게 만드십시오. syslog 형식(예: 날짜 및 시간 형식)은 구성 가능하므로 보낸 사람에서 들여쓰기를 올바르게 설정할 수 없습니다.

관련 정보