我正在开发一个基于elkstack的项目,它基于Elk Docker structure(您可以在下面看到我的目录结构)
我的python脚本位于src下,现在为了与Logstash交互,我尝试使用https://github.com/vklochan/python-logstash包,
在我想用python-logstash
包提供的示例代码测试它之后,我用pip install python-logstash
安装了它
import logging
import logstash
import sys
host = 'localhost'
test_logger = logging.getLogger('python-logstash-logger')
test_logger.setLevel(logging.INFO)
test_logger.addHandler(logstash.LogstashHandler(host, 5959, version=1))
# test_logger.addHandler(logstash.TCPLogstashHandler(host, 5959, version=1))
test_logger.error('python-logstash: test logstash error message.')
test_logger.info('python-logstash: test logstash info message.')
test_logger.warning('python-logstash: test logstash warning message.')
# add extra field to logstash message
extra = {
'test_string': 'python version: ' + repr(sys.version_info),
'test_boolean': True,
'test_dict': {'a': 1, 'b': 'c'},
'test_float': 1.23,
'test_integer': 123,
'test_list': [1, 2, '3'],
}
test_logger.info('python-logstash: test extra fields', extra=extra)
但是面对NameError:name'logstash'没有定义这似乎是因为我在项目的根目录中有一个logstash
目录,它比我用pip安装的logstash包有更高的优先级
如何解决这个问题?
注意:对于print(sys.path)
,我确信加载的优先级如下
目前没有回答
相关问题 更多 >
编程相关推荐