gpt4 book ai didi

Django 服务器无法与 AzureLogHandler (opencensus) 一起使用

转载 作者:行者123 更新时间:2023-12-03 04:01:11 25 4
gpt4 key购买 nike

我正在尝试使用 OpenCensus 将 django 项目日志连接到 Azure Application Insights。 middleware对于 montirong 请求效果很好,但我也想发送 telemetry logs (不仅仅是请求)到 Azure。这是我的 django LOGGING 配置:

LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': '%(asctime)s %(levelname).3s %(process)d %(name)s : %(message)s',
},
'simple': {
'format': '%(asctime)s %(levelname)-7s : %(message)s',
},
},
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse',
}
},
'handlers': {
'console': {
'class': 'logging.StreamHandler',
'formatter': 'verbose',
},
'azure': {
'formatter': 'simple',
'class': 'opencensus.ext.azure.log_exporter.AzureLogHandler',
'connection_string': 'InstrumentationKey=XXXX-XXXX-XXXX-XXXX'
},
'mail_admins': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'django.utils.log.AdminEmailHandler'
}
},
'loggers': {
'': {
'level': os.environ.get('LOGLEVEL', 'INFO'),
'handlers': ['console', 'azure'],
},
'devdebug': {
'handlers': ['console'],
'level': 'INFO',
'propagate': False,
},
'django': {
'handlers': ['console', 'mail_admins'],
'level': os.environ.get('LOGLEVEL', 'INFO'),
'propagate': False,
}
},
}

我的根记录器配置中没有 'azure' 处理程序,一切正常。使用 'azure' 处理程序,服务器启动但无法工作:我无法连接到它。我真的不知道发生了什么,因为它没有向我显示异常日志(即使使用 LOGLEVEL=DEBUG)。我的处理程序配置应该很好,因为我可以在 Azure 中接收日志(当我运行任何管理命令时)。即使当我运行manage runningslserver localhost:53215时,我也会收到日志,但当我尝试访问它时,就像我的服务器没有运行一样。

最佳答案

我已经通过设置设置了日志记录并使其正常工作(尽管没有使用runsslserver。我已将connection_string设置为环境变量。

我遇到的问题是“django”记录器在生产中不起作用。所有其他记录器都在发送消息,但不是那个记录器???我有一个经典案例,它可以在我的机器和我们的开发服务器上运行,但不能在产品中运行...FML!!

INTEGRATIONS = ['postgresql', 'httplib','logging', 'threading']
config_integration.trace_integrations(INTEGRATIONS)

# Set the AppInsights Key as an env variable so it can be used by the logging system
os.environ['APPLICATIONINSIGHTS_CONNECTION_STRING'] = 'InstrumentationKey=XXXXXXXXXXXXXXXXXXXXXXX'

LOGGING = {
'disable_existing_loggers': True, #False, #<-- if true then make sure that you have a 'django' and '' logger
'filters': {
"require_debug_false": {
'()': 'django.utils.log.RequireDebugFalse',
},
'require_debug_true': {
'()': 'django.utils.log.RequireDebugTrue',
},
},
'formatters': {
'simple': {
'format': '[%(asctime)s] %(levelname)s %(message)s',
'datefmt': '%Y-%m-%d %H:%M:%S'
},
'verbose': {
'format': '[%(asctime)s] %(levelname)s [%(name)s.%(funcName)s:%(lineno)d] %(message)s',
'datefmt': '%Y-%m-%d %H:%M:%S'
},
'azure_verbose': {
'format': '[%(asctime)s] %(levelname)s [%(name)s.%(funcName)s:%(lineno)d] %(message)s traceId=%(traceId)s spanId=%(spanId)s',
'datefmt': '%Y-%m-%d %H:%M:%S'
},
},
'handlers': {
'console': {
'class': 'logging.StreamHandler',
'level': 'INFO',
'filters': ['require_debug_true'],
'formatter': 'verbose'
},
'azure':{
'level': 'INFO',
'filters': ['require_debug_false'],
'class': 'opencensus.ext.azure.log_exporter.AzureLogHandler',
'formatter': 'azure_verbose'
},
},
'loggers': {
'mylogger': {
"handlers": [
"azure",
"console",
],
},
'django': {
'handlers': [
'azure',
'console',
],
},
'py.warnings': {
'handlers': [
'azure',
'console',
],
},
'': {
'handlers': [
'azure',
'console',
],
},
},
'version': 1
}

关于Django 服务器无法与 AzureLogHandler (opencensus) 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62306294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com