Настройте LogLevel функции Azure с помощью переменных среды - PullRequest
0 голосов
/ 21 ноября 2018

Согласно документации Azure , функции V2 используют для конфигурации иерархию фильтра ведения журнала .NET Core .

В следующем примере экземпляр ILogger имеет видвнедряется в метод Run функции.

[FunctionName("MyFunction")]
public static void Run([TimerTrigger("0 */1 * * * *")]TimerInfo myTimer, ILogger logger, ExecutionContext executionContext)
{
    logger.LogInformation("I don't want to see this in production!"));
}

При проверке объекта ILogger каждый элемент LoggerInformation имеет значение MinLevel, равное нулю, которое, по-видимому, регистрирует все уровни.

В производстве я хочу тольковойти на уровне ошибок.Я хотел бы иметь возможность настроить это с помощью переменной среды, но я не могу найти документацию, которая объясняет, как этого добиться.Я попытался добавить следующую переменную среды безрезультатно:

"logging__logLevel__Default: "Error" 

Ответы [ 2 ]

0 голосов
/ 31 мая 2019

Глядя на код ( 1 , 2 , 3 ) для выполнения функций лазера, это представляется возможным.Вы должны установить его как

export AzureFunctionsJobHost__logging__logLevel__default=Error

Это работает и для других host.json настроек

export AzureFunctionsJobHost__extensions__http__routePrefix=just-another-prefix
0 голосов
/ 21 ноября 2018

Боюсь, мы не можем настроить уровень журнала, используя переменные среды.Когда запускается функция host, она читает уровень журнала из host.json и вводит экземпляр ILogger с соответствующими правилами фильтрации.Конфигурации хоста не являются переменными env, но мы можем изменить host.json для изменения уровня журнала.

v2 конфигурация журнала в host.json .

"logging": {
    "logLevel": {
     // For specific function
     "Function.MyFunction1": "Information",
     // For all functions
     "Function":"Error",
     // Default settings, e.g. for host 
     "default": "None"
    }
}
...