Ведение журнала Application Insights с log4 js в java - PullRequest
0 голосов
/ 23 февраля 2020

Azure приложение анализирует сообщения журнала, используя каркас log4j в java, как показано ниже.

https://docs.microsoft.com/en-us/azure/azure-monitor/app/java-trace-logs

Есть ли что-то подобное для nodejs приложение без использования azure узла SDK для регистрации сообщений. Я ищу записи в журнале сообщений, используя log4 js сообщения для понимания приложения с некоторыми изменениями конфигурации.

1 Ответ

0 голосов
/ 23 февраля 2020

Если вам просто нужно регистрировать сообщения. Вы можете использовать log пакет для nodejs.

Установка:

npm i log

Это универсальная утилита ведения журналов Настраиваемая, среда и презентация агности c, с журналом поддержка уровней и пространств имен (стиль отладки)

Использование Запись журналов

// Default logger writes at 'info' level
const log = require("log");

// Log 'info' level message:
log("some info message %s", "injected string");

// Get namespaced logger (debug lib style)
log = log.get("my-lib");

// Log 'info' level message in context of 'my-lib' namespace:
log("some info message in 'my-lib' namespace context");

// Namespaces can be nested
log = log.get("func");

// Log 'info' level message in context of 'my-lib:func' namespace:
log("some info message in 'my-lib:func' namespace context");

// Log 'error' level message in context of 'my-lib:func' namespace:
log.error("some error message");

// log output can be dynamically enabled/disabled during runtime
const { restore } = log.error.disable();
log.error("error message not really logged");
// Restore previous logs visibiity state
restore();
log.error("error message to be logged");

Доступные уровни журнала

Зеркало применимых уровней системного журнала (в порядке серьезности):

debug - отладочная информация (скрытая по умолчанию) info - чисто информационное сообщение (скрытое по умолчанию) уведомление - условие нормальное, но значительное предупреждение (также псевдоним как предупреждение) - ошибка предупреждения состояния - ошибка условия - для уведомления об ошибках, сопровождаемых механизм восстановления (следовательно, регистрируется как журнал, а не как необученное исключение). Примечание: критические, аварийные, аварийные ситуации не раскрываются, поскольку, как представляется, не служат сценарию использования в контексте JS приложений, такие ошибки должны быть представлены как типичные исключения

Журнал форматирования выходного сообщения не требует какой-либо определенной c обработки аргументов. Тем не менее, рекомендуется принять формат сообщения наподобие printf, так как все доступные в настоящее время авторы настроены для его поддержки. Поддержка заполнителей отражает один реализованный в формате Node.js util

Выдержка из Node.js документации:

Первый аргумент - строка, содержащая ноль или более токенов-заполнителей. Каждый маркер-заполнитель заменяется преобразованным значением из соответствующего аргумента. Поддерживаемые заполнители:% s - строка.
% d - число (целое число или значение с плавающей запятой).
% i - целое число.
% f - значение с плавающей запятой.
% j - JSON. Заменяется строкой «[Циркуляр]», если аргумент содержит циклические ссылки.
% o - Объект. Строковое представление объекта с обобщенным форматированием объекта c JavaScript. Аналогично util.inspect () с параметрами {showHidden: true, глубина: 4, showProxy: true}. Это покажет полный объект, включая не перечисляемые символы и свойства.
% O - Объект. Строковое представление объекта с обобщенным форматированием объекта c JavaScript. Аналогично util.inspect () без параметров. Это покажет полный объект, не включая не перечисляемые символы и свойства.
%% - один знак процента ('%'). Это не потребляет аргумента. Примечание для разработчиков конфигурации средства записи журналов. Для обеспечения совместимости между средами рекомендуется использовать реализацию sprintf-kit

. Самостоятельное включение журнала записи журнала ничего не записывает на консоль или любые другие средства. (он просто генерирует события, которые должны быть использованы предварительно загруженными средствами записи журналов).

Для записи журналов предварительно выбранный модуль записи журналов должен быть инициализирован в главном (начальном) модуле процесса.

Список доступных средств записи журнала. Log-node - для типичных Node.js процессов log- aws -lambda - для AWS лямбда-окружений. Примечание: если какой-либо модуль записи отсутствует, предложите PR

Logs Visibility Видимость по умолчанию зависит от среды (см. Выбранный модуль записи журналов для получения дополнительной информации), и в большинстве случаев настраивается с помощью следующих переменных среды:

LOG_LEVEL (по умолчанию замечено) Самый низкий уровень журнала, с которого (вверх) все журналы будет выставлен.

LOG_DEBUG Возможный список пространств имен для выставления на уровнях ниже порога LOG_LEVEL

Список разделен запятой, например, foo, -foo: bar (раскрыть все foo, но не foo: bar).

Он следует соглашению, настроенному в отладке. Чтобы облегчить возможный переход от отладки, откаты конфигурации к DEBUG env var, если отсутствует LOG_DEBUG.

Ведение журнала временных меток Писателям рекомендуется выставлять временные метки отдельно для каждого журнала, когда задано следующее env var

LOG_TIME rel (по умолчанию) - регистрирует время, прошедшее с момента инициализации регистратора. abs - регистрирует абсолютное время в формате ISO 8601. Тесты $ npm test Кросс-браузерная совместимость проекта поддерживается:

...