Значение $ HOST изменяется для каждого сообщения, поэтому оно вам действительно нужно в send()
, а не в init()
. То, что вы действительно хотите, это что-то вроде этого:
class MyDestination(object):
# ...
def send(self, msg):
host = msg["HOST"]
# ...
return True
Или вы можете использовать шаблоны, начиная с версии 3.18:
import syslogng
class MyDestination(object):
def init(self, options):
self.log_template = syslogng.LogTemplate("$HOST")
# ...
return True
def send(self, msg):
formatted_string = self.log_template.format(msg, self.template_options)
# ...
return True