получил это в моем rsysconf:
$templateTemplateLog,"%msg%\n"
$template DynamicLog,"%msg%\n"
$template DynamicFile,"/var/log/%PROGRAMNAME%.log"
если ($programname == "test"), то {local3.=debug -/var/log/path.log;TemplateLog}
local3.=debug -?DynamicFile;DynamicLog
& останавливаться
Если я уберу оператор if, он будет работать хорошо.
Но мне нужно, чтобы оператор if работал. Что в этом плохого? Спасибо за совет.
Я попытался изменить == на contains, как это было предложено в одном из ответов, это не помогает.
Содержит ли $programname ту же информацию, что и %PROGRAMNAME%? Это может быть причиной проблемы, может быть...
Итак, согласно ответу, я сделал это:
$templateTemplateLog,"%msg%\n"
$template DynamicLog,"%msg%\n"
$template DynamicFile,"/var/log/%PROGRAMNAME%.log"
шаблон (имя = «pname», тип = «строка», строка = «% PROGRAMNAME%»)
установить $!xyz = exec_template("pname");
если ($!xyz содержит "тест"), то {local3.=debug -/var/log/path.log;TemplateLog}
local3.=debug -?DynamicFile;DynamicLog
& останавливаться
Но, к сожалению, этот код тоже не работает. Если я удалю оператор if, второй DynamicFile будет сохранен в test.log, поэтому значение будет правильным.