【问题标题】:Export Django logs to Azure AppInsights with OpenCensus使用 OpenCensus 将 Django 日志导出到 Azure AppInsights
【发布时间】:2021-01-27 19:55:19
【问题描述】:

我正在遵循 DjangoAzure 的指导。我能够获取依赖项和请求,但不能获取跟踪。

我将这个添加到中间件:

'opencensus.ext.django.middleware.OpencensusMiddleware'

这是 settings.py 的 LOGGING 和 OPENCENSUS 部分

LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
    'default': {
        'format': '%(asctime)s - %(levelname)s - %(processName)s - %(name)s\n%(message)s',
    },
},
"handlers": {
    "azure": {
        "level": "DEBUG",
    "class": "opencensus.ext.azure.log_exporter.AzureLogHandler",
        "instrumentation_key": assert_env('APPINSIGHTS_INSTRUMENTATIONKEY'),
     },
    "console": {
        "level": "DEBUG",
        "class": "logging.StreamHandler",
        "formatter": "default",
     },
  },
"loggers": {
    "logger_name": {"handlers": ["azure", "console"]},
},
    # For some reason, this is needed or logging doesn't show up in the
    # celery log file.
'skyforge.tasks': {
    'handlers': ['azure','console'],
    'level': assert_env('DJANGO_LOG_LEVEL'),
},

}

OPENCENSUS = {
    'TRACE': {
        'SAMPLER': 'opencensus.trace.samplers.ProbabilitySampler(rate=1)',
        'EXPORTER': '''opencensus.ext.azure.trace_exporter.AzureExporter(
            service_name='skyforge'
        )'''
        #Assumes Environmental Variable 'APPINSIGHTS_INSTRUMENTATIONKEY'
    }
}

关于在哪里查找为什么没有跟踪日志的任何指南。 django-critical 和 django-tasks 仍在控制台中。

【问题讨论】:

    标签: django azure-application-insights opencensus


    【解决方案1】:

    这是错误的部分:

    "loggers": {
    "logger_name": {"handlers": ["azure", "console"]},
    

    "logger_name" 需要填充应用名称,以便 logger = logging.getLogger(__name__) 工作正常。

    记录器中还需要一个级别。

    这对我有用。

    LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'default': {
            'format': '%(asctime)s - %(levelname)s - %(processName)s - %(name)s\n%(message)s',
        },
    },
    'handlers': {
         'azure': {
            'class': 'opencensus.ext.azure.log_exporter.AzureLogHandler',
            'formatter':'default'
            # https://pypi.org/project/opencensus-ext-azure/
            #Assumed ENV APPLICATIONINSIGHTS_CONNECTION_STRING
          },
        'console': {
            'class': 'logging.StreamHandler',
            'formatter': 'default',
    
        },
      },
    'loggers': {
        'polls': {
            'handlers': ['azure', 'console'],
            'level':'DEBUG'
            },
    }
    

    }

    以下选项没有影响: 'level' 处理程序中的参数 'filter':'[]' 在处理程序中 'stream':sys.stdout 在处理程序中。

    我将 Appinsights 连接字符串放在环境变量中,但参考资料还显示了如何放置在设置中。设置中的原始键似乎也可以使用。

    APPLICATIONINSIGHTS_CONNECTION_STRING=InstrumentaionKey=<key uuid>
    

    【讨论】:

      猜你喜欢
      • 2017-12-09
      • 2016-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多