我正在使用 python sysloghander 将日志发送到集中式系统日志服务器。该代码正在运行,但我在自定义格式时遇到了一些问题。下面是我写的代码。
#!/usr/bin/python
import logging
from logging.handlers import SysLogHandler
import subprocess
hostname = subprocess.check_output(['hostname', '-f'])
logger = logging.getLogger()
logger.setLevel(logging.INFO)
syslog = SysLogHandler(address=('log.central.log', 514))
formatter = logging.Formatter('%(asctime)s %(name)s: %(levelname)s %(message)s', '%b %e %H:%M:%S')
syslog.setFormatter(formatter)
logger.addHandler(syslog)
logger.info("My Message")
是否可以在日志格式化程序中添加自定义标签/变量。我想在它们中添加主机名和 app_name,因为我已经设置了中央日志服务器以基于主机名和 app_name 创建日志文件。
app_name 可以是任何东西,比如我可以将 app_name 设置为“mysql_communication_log”或“wsgi_log”,然后在中央服务器上创建具有相同名称的单独文件。
我正在寻找的是类似的东西
formatter = logging.Formatter('%(asctime)s %(hostname)s %(app_name)s: %(message)s', '%b %e %H:%M:%S')