使用syslog ng python destination设置变量路径

使用syslog ng python destination设置变量路径,python,syslog-ng,Python,Syslog Ng,这可能吗?据我所见,将选项放入python类的唯一方法是在python目标的选项中硬编码它们。我需要基于宏设置一个变量路径,比如$HOST,但是python目标选项似乎没有被插值。我需要一种方法将$HOST之类的宏值传递给init()方法。每个消息的$HOST值都会发生变化,因此您实际上需要在send()中使用它,而不是在init()中使用它。您可能真正想要的是这样的: 类MyDestination(对象): # ... def发送(自我,消息): 主机=消息[“主机”] # ... 返回真值

这可能吗?据我所见,将选项放入python类的唯一方法是在python目标的选项中硬编码它们。我需要基于宏设置一个变量路径,比如$HOST,但是python目标选项似乎没有被插值。我需要一种方法将$HOST之类的宏值传递给init()方法。

每个消息的$HOST值都会发生变化,因此您实际上需要在
send()
中使用它,而不是在
init()
中使用它。您可能真正想要的是这样的:

类MyDestination(对象):
# ...
def发送(自我,消息):
主机=消息[“主机”]
# ...
返回真值
或者,您可以使用从v3.18开始的模板:

导入系统日志
类MyDestination(对象):
def初始(自我,选项):
self.log_template=syslogng.LogTemplate($HOST)
# ...
返回真值
def发送(自我,消息):
格式化的\u字符串=self.log\u template.format(消息,self.template\u选项)
# ...
返回真值

如果您以“我有:”部分开始提问,描述您的设置、使用的软件和您已有的代码,可能会更好。