Перейти к содержанию

Модуль логгирования

Для журналирования необходимо использовать модуль @chemsoft/logger. Стандартный лог располагается в директории log/lis_node.log. Модуль логгирования полностью переписан (ранее был основан на логгере winston).

const { createConsoleAndFileLogger } = require("@chemsoft/logger");

Экспортируемые сущности

Для импорта сущности из пакета используется деструктуризация объекта:

const {
  createEmptyLogger,
  createConsoleAndFileLogger,
  ConsolePrinter,
  FilePrinter,
} = require("@chemsoft/logger");

Интерфейс IPrinter

Интерфейс описывает сущность стандартного принтера (в данный момент реализованы в консоль и в файл)

declare interface IPrinter {
  debug(...msg: any[]): void;
  info(...msg: any[]): void;
  warning(...msg: any[]): void;
  error(...msg: any[]): void;
}

Интерфейс ILogger

Интерфейс описывает сущность логгера. Реализованы паттерны мост и прокси-команда. Через паттерн мост добавляются новые принтеры, через прокси-команду делегируется выполнение методов с сохранением исходного API IPrinter. Также содержит уровни логгирования.

declare interface ILogger extends IPrinter {
  registerPrinter(printer: IPrinter): void;
  level: LogLevel;
}

Фабрика createEmptyLogger()

Создает пустой логгер. Т.к. логгер не содержит в себе реализации, то ему обязательно нужно будет передать принтер.

return: ILogger возвращает пустой логгер (описание в интерфейсе ILogger)

function createEmptyLogger(): ILogger

Фабрика createConsoleAndFileLogger()

Создает логгер, в котором уже зарегистрированы принтеры и для консоли, и для файла. Конечно, при желании можно будет зарегистрировать еще принтеры, и писать таким образов в два файла сразу, например.

filepath: string путь для файлового принтера

return: ILogger возвращает пустой логгер (описание в интерфейсе ILogger)

function createConsoleAndFileLogger(filepath): ILogger

класс ConsolePrinter

Создает принтер для консоли. В целом самостоятелен, но полный функционал логгера (уровни логгирования) раскрываются именно в связке с логгером.

return: IPrinter возвращает файловый принтер (описание в интерфейсе IPrinter)

ConsolePrinter.constructor(): IPrinter

класс FilePrinter

Создает принтер для файлов. В целом самостоятелен, но полный функционал логгера (уровни логгирования) раскрываются именно в связке с логгером.

filepath: string путь для файлового принтера

return: IPrinter возвращает файловый принтер (описание в интерфейсе IPrinter)

FilePrinter.constructor(filepath): IPrinter