Parse your log in JSON formatter
Using @ODG/Log parser logs message !
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
- Node.js 16 or later
- Yarn Optional/Recommended
- ODG TsConfig Last Version
- error-stack-parser Last Version
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 buildandbun run startagain
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