รับสิ่งนี้ใน rsysconf ของฉัน:
$ template แม่แบบบันทึก,"%msg%\n"
$เทมเพลต DynamicLog,"%msg%\n"
$เทมเพลต DynamicFile,"/var/log/%PROGRAMNAME%.log"
ถ้า ($ชื่อโปรแกรม == "ทดสอบ") ดังนั้น {local3.=debug -/var/log/path.log;TemplateLog}
local3.=debug -?DynamicFile;DynamicLog
& หยุด
ถ้าฉันเลิกใช้คำสั่ง if มันก็ใช้ได้ดี
แต่ฉันจำเป็นต้องทำให้คำสั่ง if ใช้งานได้ มีอะไรผิดปกติเกี่ยวกับมัน? ขอบคุณสำหรับคำแนะนำ
ฉันพยายามเปลี่ยน == เป็นบรรจุตามที่แนะนำในคำตอบข้อใดข้อหนึ่ง ซึ่งไม่ได้ช่วยอะไร
$programname มีข้อมูลเหมือนกับ %PROGRAMNAME% หรือไม่ นี่อาจทำให้เกิดปัญหาได้ บางที...
ตามคำตอบฉันได้ทำสิ่งนี้:
$ template แม่แบบบันทึก,"%msg%\n"
$เทมเพลต DynamicLog,"%msg%\n"
$เทมเพลต DynamicFile,"/var/log/%PROGRAMNAME%.log"
แม่แบบ(ชื่อ="pname" type="string" string="%PROGRAMNAME%")
ตั้ง $!xyz = exec_template("pname");
ถ้า ($!xyz มี 'test') ดังนั้น {local3.=debug -/var/log/path.log;TemplateLog}
local3.=debug -?DynamicFile;DynamicLog
& หยุด
แต่น่าเสียดายที่รหัสนี้ใช้ไม่ได้เช่นกัน ถ้าฉันลบคำสั่ง if ไฟล์ DynamicFile ที่สองจะถูกบันทึกใน test.log ดังนั้นค่าจะถูกต้อง