Azure Регистрация функций - Регистрация информации на уровне модуля - PullRequest
1 голос
/ 12 апреля 2020

Я пытаюсь записать информацию в Application Insights на уровне кода модуля в отличие от уровня function .

Я могу успешно войти в INFO, ПРЕДУПРЕЖДЕНИЕ et c, когда регистратор вызывается изнутри функции (в любом модуле моего проекта), но не при вызове вне функции (например, при инициализации модуля, необходимо зарегистрировать некоторые настройки)

Для Например, когда я запускаю мое приложение HttpTrigger в azure функциях, это работает, и регистрирует информацию для понимания приложения:

import logging

def main(req: func.HttpRequest) -> func.HttpResponse:
    logging.info('this message is logged successfully')
    do_something()

, а это не работает:

import logging
logging.info('this message isnt logged anywhere')

def main(req: func.HttpRequest) -> func.HttpResponse:
    do_something()

У меня есть попытался использовать именованные регистраторы, изменив настройки журналирования, например:

import logging
log = logging.getLogger(__name__)
log.setLevel(logging.INFO)
log.info('This still isnt logged')

def main(req: func.HttpRequest) -> func.HttpResponse:
    do_something()

и изменив конфигурацию на хосте. json:

{
  "version": "2.0",
  "extensionBundle": {
    "id": "Microsoft.Azure.Functions.ExtensionBundle",
    "version": "[1.*, 2.0.0)"
  },
  "logging": {
    "fileLoggingMode": "always",
    "logLevel": {
      "default": "Information",
      "Host.Results": "Information",
      "Function": "Information",
      "Host.Aggregator": "Information"
    }
  }
}

При локальном запуске кода информация выводится на стандартный вывод везде .

Полагаю, я неправильно понимаю, как работает запись в az. Если кто-то может заполнить мои пробелы здесь, почему регистрация не работает, как я ожидаю, это будет оценено!

1 Ответ

1 голос
/ 13 апреля 2020

Это причина:

enter image description here

Проблема возникает из-за того, что приложение не открывается по умолчанию на azure. Это решение:

Go для функций платформы -> Все настройки.

enter image description here

Go для поиска службы приложений журналы -> регистрация приложения -> установить время для сохранения журнала -> сохранить редактирование.

enter image description here

Тогда все будет хорошо.

Это мой код:

import logging

import azure.functions as func

logger = logging.getLogger('name')
logger.setLevel(logging.DEBUG)
sh = logging.StreamHandler()
sh.setLevel(logging.INFO)
logger.addHandler(sh)
logger.info('This will work.')

def main(req: func.HttpRequest) -> func.HttpResponse:
    logging.info('Python HTTP trigger function processed a request.')

    name = req.params.get('name')
    if not name:
        try:
            req_body = req.get_json()
        except ValueError:
            pass
        else:
            name = req_body.get('name')

    if name:
        return func.HttpResponse(f"Hello {name}!")
    else:
        return func.HttpResponse(
             "Please pass a name on the query string or in the request body",
             status_code=400
        )

Перед установкой я сталкиваюсь с той же проблемой, что и ваша. Но после настройки я могу получить ИНФОРМАЦИЮ:

enter image description here

Это официальное сообщение c:

https://docs.microsoft.com/en-us/azure/app-service/troubleshoot-diagnostic-logs#enable -Применение-каротаж linuxcontainer

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...