parse your log in JSON formatter
npm install @odg/json-log



!Repository size



- ๐ Benefits
- ๐ Libraries
- ๐ Dependencies
- โฉ Get Started
- ๐ Use Plugin
- ๐ฒ Implementation
- ๐ SendLog
- ๐ป Prepare to develop
- ๐ Start Project
- ๐จ Build and Run
- ๐งช Teste Code
---
- ๐ Speed start new project or package using typescript
- ๐จ Over 800 rules for pattern, possible errors and errors in Linter
- ๐ Log Pattern default format
- Node.js 16
- Typescript
- Eslint
- ODG-Linter-JS
- EditorConfig
- ReviewDog
- Node.js 16 or later
- Yarn Optional/Recommended
- ODG TsConfig Last Version
- error-stack-parser Last Version
---
install this plugin with
``powershell`
yarn add @odg/json-log
`typescript
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
`typescript`
try {
throw new Exception("Example");
} catch (error) {
await logger.error(error);
}
LOG JSON Return
`jsonc`
{
"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",
}
Copy .env.example to .env and add the values according to your needs.
First install dependencies with the following command
`bash`
yarn installor
npm install
To build the project, you can use the following command
> if you change files, you need to run yarn build and yarn start again
`bash`
yarn build && yarn startor
yarn dev
To Test execute this command
`bash``
yarn testor
yarn test:watch