Security News
ESLint is Now Language-Agnostic: Linting JSON, Markdown, and Beyond
ESLint has added JSON and Markdown linting support with new officially-supported plugins, expanding its versatility beyond JavaScript.
@tramvai/module-log
Advanced tools
Модуль добавляющий логгирование на основе [@tinkoff/logger](references/libs/logger.md)
Модуль добавляющий логгирование на основе @tinkoff/logger
Уже входит в @tramvai/module-common
и отдельно не нужно подключать
import { Module, commandLineListToken, provide } from '@tramvai/core';
import { LOGGER_TOKEN } from '@tramvai/module-common';
@Module({
providers: [
provide({
provide: commandLineListToken.customerStart,
useFactory: ({ logger }) => {
logger.debug('customer start'); // логгирование в глобальном пространстве логов
const myLogger = logger({
name: 'test',
});
myLogger.warn('warning'); // логгирование в пространстве test
myLogger.error('error!');
},
deps: {
logger: LOGGER_TOKEN,
},
}),
],
})
export class MyModule {}
см. @tinkoff/logger
Предполагается что логи с сервера собираются через отдельный механизм, который имеет доступ к выводу консоли сервера и поэтому в логгировании на внешнее апи нет смысла.
В браузере логи на апи отправляются с помощью RemoteReporter. По умолчанию отправляются все логи уровня error
и fatal
. Урл апи определяется из переменной окружения FRONT_LOG_API
. Для индивидуальной настройки смотри документацию к RemoteReporter.
Данная функция доступна в дев режиме и создана для упрощения работы с логами при разработке.
В консоли браузера при заходе на страницу приложения появится специальная группа логов, под тегом Tramvai SSR Logs
при раскрытии логов будут отображены логи которые были залогированы для даного конретного запроса на сервера, причем будут отображены именно те логи, которые подпадают под настройки отображения для сервера. Если необходимо отобразить все логи с сервера с настройками отображения для клиента, то нужно запустить сервер с переменной окружения DEBUG_FULL_SSR
Логгер и настройки для него должны явно передаваться в плагин логгирования, что уже делается в http-client.
В плагине используется генерация тега для логгера в виде request.${name}
поэтому чтобы отобразить такие необходимо настроить фильтры для отображения для конкретной фабрики запросов:
const logger = di.get(LOGGER_TOKEN);
const makeRequest = request([...otherPlugins, logger({ name: 'my-api-name', logger })]);
Т.к. имя для логгера равно my-api-name
, то для отображения логов необходимо:
LOG_ENABLE: 'request.my-api-name'
logger.enable('request.my-api-name')
Смотри Как правильно логгировать
Сущность логгера. Заменяет стандартную реализацию LOGGER_TOKEN
из @tramvai/module-common
По умолчанию, настройки отображения логгера на сервере берутся из переменной окружения LOG_ENABLE
, а настройки уровня логирования из переменной окружения LOG_LEVEL
Для изменения этих настроек в рантайме существует papi роут {app}/private/papi/logger
Отображение логов меняется через query параметр enable
, например:
https://localhost:3000/{app}/private/papi/logger?enable=request.tinkoff
Уровень логгирования меняется через query параметр level
, например:
https://localhost:3000/{app}/private/papi/logger?level=warn
Вернуть настройки по умолчанию, из переменных окружения, можно с параметром mode=default
:
https://localhost:3000/{app}/private/papi/logger?mode=default
LOG_LEVEL
= trace | debug | info | warn | error | fatal - включает отображение логов для заданного уровня и все уровней выше. Пример:
LOG_LEVEL=info
, то будут отображаться все логи уровней info, warn, error, fatalLOG_ENABLE
= ${name}
| ${level}:${name}
- позволяет включить отображение всех логов по определенному имени логгера или по определенному имени и уровню. Несколько вхождений передаются через запятую. Примеры:
LOG_ENABLE=server
, то будут отображены логи всех уровней с именем server
LOG_ENABLE=trace:server*
, то будут отображены только логи для server
с уровнем trace
LOG_ENABLE=info:server,client,trace:shared
, то будут включены логи для заданных логгеров по правилам вышеМодуль использует логгер с идентификатором ssr-logger
FAQs
Module adds `LOGGER_TOKEN` token implementation using library [@tinkoff/logger](references/libs/logger.md)
The npm package @tramvai/module-log receives a total of 2,216 weekly downloads. As such, @tramvai/module-log popularity was classified as popular.
We found that @tramvai/module-log demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
ESLint has added JSON and Markdown linting support with new officially-supported plugins, expanding its versatility beyond JavaScript.
Security News
Members Hub is conducting large-scale campaigns to artificially boost Discord server metrics, undermining community trust and platform integrity.
Security News
NIST has failed to meet its self-imposed deadline of clearing the NVD's backlog by the end of the fiscal year. Meanwhile, CVE's awaiting analysis have increased by 33% since June.