Skip to content

dmetree01/loogs

Repository files navigation

loogs

Объектно-ориентированная библиотека nodejs для логгирования объектов с помощью декораторов

Примеры

Базовый лог с уровнем и датой

const { ConsoleOutput } = require("./ConsoleOutput.js");
const { BaseLog } = require("./BaseLog.js");
const jsObj = {
    'level': 'info',
    'message':'log',
    'payload': {
        'a':1,
        'b':[2, 3, 4],
        'c': {
            5: true
        }
    }
}
const baseLog = BaseLog.newFromJsObj(jsObj);
const output = new ConsoleOutput;
output.add( baseLog.level(), baseLog.asJsObj() )

В текстовой форме

const { TextLog } = require("./TextLog.js");
ConsoleOutput.newWith(
    TextLog.newFromLog(
        baseLog
    )
);

Цветной (error#f03c15, warn#f03c15, info#f03c15)

const { AnsiColoredLog } = require("./AnsiColoredLog.js");
ConsoleOutput.newWith(
    AnsiColoredLog.newFromLog(
        TextLog.newFromLog(
            baseLog
        )
    )
);

В виде json строки

const { JsonLog } = require("./JsonLog.js");
ConsoleOutput.newWith(
    JsonLog.newFromLog(
        baseLog
    )
);

С добавлением Google Stackdriver параметра severity

const { GoogleLog } = require("./GoogleLog.js");
ConsoleOutput.newWith(
    GoogleLog.newFromLog(
        JsonLog.newFromLog(
            baseLog
        )
    )
);

Возможна любая комбинация декораторов благодаря единому интерфейсу

output.addAsString(
    AnsiColoredLog.newFromLog(
        JsonLog.newFromLog(
            baseLog
        )
    )
);
output.addAsString(
    TextLog.newFromLog(
        GoogleLog.newFromLog(
            baseLog
        )
    )
);

Автоматический подбор композиции декорированных логов в зависимости от параматра среды выполнения

const { Logs } = require("./Logs.js");

const devLogs = new Logs(output, 'dev');
devLogs.add(jsObj);

const prodLogs = new Logs(output, 'any');
prodLogs.addError({'message':'oops'});

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published