Модуль логгирования
Для журналирования необходимо использовать модуль @chemsoft/logger. Стандартный лог располагается в директории log/lis_node.log. Модуль логгирования полностью переписан (ранее был основан на логгере winston).
Экспортируемые сущности
Для импорта сущности из пакета используется деструктуризация объекта:
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)
Фабрика createConsoleAndFileLogger()
Создает логгер, в котором уже зарегистрированы принтеры и для консоли, и для файла. Конечно, при желании можно будет зарегистрировать еще принтеры, и писать таким образов в два файла сразу, например.
filepath: string путь для файлового принтера
return: ILogger возвращает пустой логгер (описание в интерфейсе ILogger)
класс ConsolePrinter
Создает принтер для консоли. В целом самостоятелен, но полный функционал логгера (уровни логгирования) раскрываются именно в связке с логгером.
return: IPrinter возвращает файловый принтер (описание в интерфейсе IPrinter)
класс FilePrinter
Создает принтер для файлов. В целом самостоятелен, но полный функционал логгера (уровни логгирования) раскрываются именно в связке с логгером.
filepath: string путь для файлового принтера
return: IPrinter возвращает файловый принтер (описание в интерфейсе IPrinter)