if 문이 rsyslog에서 작동하지 않는 것 같습니다.

if 문이 rsyslog에서 작동하지 않는 것 같습니다.

나는 사용하려고RainerScript 구문내 데비안 /etc/rsyslog.conf파일에. 데몬의 내용을 특정 파일에 기록하고 싶지만 pppd추가한 내용은 다음과 같습니다.

if $programname == 'pppd' then {
    daemon.*;local2.*   -/var/log/pppd.log
}

그런 다음 rsyslog 서비스를 다시 시작했습니다. 내용은 이 파일에 기록되지만 이 파일에서 내용도 가져오므 namedif해당 명령문은 무시되는 것처럼 보이거나 항상 true로 평가됩니다. 왜 그런가요? 내 코드에 실수가 있었나요?

답변1

노력하다:

if $programname == 'pppd' and $syslogfacility-text =='daemon' and $syslogfacility-text == 'local2' then /var/log/pppd.log
if $programname == 'pppd' then ~

라인 1은 /var/log/pppd.log 파일에 대한 로깅을 나타냅니다.

2행에는 더 이상 로그 파일이 없고 물결표는 실제로 "삭제"를 의미하기 때문에 "확인, 파일에 대한 로깅 중지"라고 표시됩니다.

관련 정보