예제에 다음 줄이 제공됩니다 /etc/rsyslog.conf
.
$template MyFmt, "%timereported:::date-year%%timereported:::date-month%%timereported:::date-day%_%timereported:::date-hour%%timereported:::date-minute%%timereported:::date-second% %fromhost-ip% %fromhost% %HOSTNAME% %syslogtag%%programname%%msg:::drop-last-lf%\n"
auth,authpriv.* |/path/to/log;MyFmt
syslog 발신자가 컴파일된 C++ 프로그램이라고 가정합니다. 즉, 다음과 같습니다.
// main.cpp
#include <ctime>
#include <syslog.h>
int main( int argc, char* artv[] )
{
openlog( "LogTest[456]", 0, LOG_AUTH );
syslog( LOG_AUTH | LOG_INFO, "hello, world %zu", size_t( time( NULL ) ) );
closelog();
return 0;
}
그렇다면 항목의 합계 값 /var/log/secure
이 " "인 이유는 무엇입니까 ? 이것은 반드시 프로그램이 " "을 호출한다는 것을 의미합니까 ?%syslogtag%
%programname%
(none)
openlog( "(none)", ... );
openlog()
첫 번째 매개변수 값 ( 빈 문자열 ""
) 과 NULL
. . 명시적으로 ...?로 지정하는 것 외에는 "" 값이 나올 수 있는 다른 방법이 생각나지 않습니다 .%syslogtag%
%syslogtag%
a.out
(none)
openlog()
편집하다: 명확하게 말하면: 위의 예제 프로그램확실히결과는 %syslogtag%
" (none)
" 값입니다. 결과는 예상 값 " LogTest[456]
"입니다. 내 질문은 더 많은 것입니다. %syslogtag%
""로 명시적으로 지정되지 않은 값 " "이 발생하는 결과는 무엇입니까 ?(none)
openlog()
(저는 직장에서 관찰하고 있는 동작을 이해하려고 노력하고 있습니다. 서버에서 실행 중인 rsyslogd는 위에서 설명한 대로 클라이언트로부터 syslog를 수신하고 이를 템플릿 형식으로 파이프에 씁니다.일부작성된 콘텐츠의 값은 %syslogtag%
" (none)
"입니다. 이에 대한 근본적인 이유를 알고 싶습니다. )