npm.io
1.20.3 • Published 54m ago

@odg/json-log

Licence
MIT
Version
1.20.3
Deps
4
Size
140 kB
Vulns
0
Weekly
0
Stars
2

Stanley Imagem
Parse your log in JSON formatter

Using @ODG/Log parser logs message !

codecov Stargazers Made by ODGodinho Forks Repository size GitHub last commit License StyleCI

Table of Contents


Benefits

  • Speed start new project or package using typescript
  • Over 800 rules for pattern, possible errors and errors in Linter
  • Log Pattern default format

Libraries

Dependencies

Get Started


Use Plugin

install this plugin with

yarn add @odg/json-log
Implementation
const logger = new Logger(); // Or Other Class Logger
const consoleLogger = new ConsoleLogger(); // Or Other Class Logger
const processor = new JSONLoggerPlugin(
    "appName",
);
logger.pushHandler(consoleLogger);
logger.pushProcessor(processor);

// If you need convert Request and response request headers body, params in string before log
logger.pushProcessor(RequestStringPlugin);

plugin.setIdentifier(randomUUID());
Send Log
try {
    throw new Exception("Example");
} catch (error) {
    await logger.error(error);
}

LOG JSON Return

{
    "type": "error",
    "index": "appName",
    "instance": "ContainerID",
    "identifier": "00000000-0000-0000-0000-00000", // use setIdentifier in plugin to change log group
    "gitRelease": "v1.0.0",
    "gitBranch": "main",
    "exception": {
        "type": "string", // ExceptionClassName
        "message": "string", // Example
        "fileException": "string", // index.js
        "functionName": null, // OPTIONAL:
        "fileLine": "number", // 1
        "fileColumn": "number", // 1
        "stack": "stack",
    },
    "exceptionPrevious": null, // OPTIONAL: This is previous second property on new Exceptions("Example", error);
    "request": {
        "url": "string",
        "baseURL": "string",
        "method": "Methods | string",
        "headers": {
            "header-key": "header-value"
        },
        "params": "ParametersInterface",
        "data": "RequestData",
        "timeout": "number",
        "responseType": "ResponseType",
        "maxContentLength": "number",
        "validateStatus": "((status: number) => boolean) | null",
        "maxBodyLength": "number",
        "maxRedirects": "number",
        "socketPath": "string | null",
        "proxy": "ProxyConfigInterface | false",
        "response": { // OPTIONAL: This is response from axios
            "data": "any",
            "status": "number",
            "headers": {
                "string": "string"
            },
        }
    },
    "createdAt": "Date",
}
Prepare To Develop

Copy .env.example to .env and add the values according to your needs.

Start Project

First install dependencies with the following command

bun install
# or
npm install

Build and Run

To build the project, you can use the following command

if you change files, you need to run bun run build and bun run start again

bun run build && bun run start
# or
bun run dev

Teste Code

To Test execute this command

bun run test
# or
bun run test:watch