[![N|Solid](https://cloudgensys.com/cg-demo/wp-content/uploads/2019/05/CG-Logo-01.png)](https://www.cloudgensys.com/)

# logging-n3xgen-cg-lib

The purpose of this library is to provide a method that allow us to send information for auditing or tracking of any
component
to ths server elastic search. The information will be can when error produces or when we need send info for the
execution for the process in the
components

The library can be installed from npm page with some of the following commands:

**`npm install logging-n3xgen-cg-lib`**, **`npm i logging-n3xgen-cg-lib`** or **`yarn install logging-n3xgen-cg-lib`**

## 2. Library

* ### 2.1. Objects and Examples

  The library contains only one object, `objectLESReq`, this object will be contained the credentials valid to connect
  with logging server, and it has the following properties:

  ***Values and Example***:
   ```javascript
  {
   "method":"POST", // it's the method http to connect with th server
   "api_url":"https://elastic.n3xgen.cgdemos.com/proyect/trxlogs/", // it's api url or link to connect
   "auth":"Basic ZWxhc3RpGzplbGFzdGlj" //it's the key of auth with the server
  }
   ```
  _Example with `axios` library:_
  ```javascript
  
  axios.defaults.headers.common['Authorization'] = `${objectLESReq.auth}`;

  resultApi = await axios({
    method: objectLESReq.method,
    url: objectLESReq.api_url,
    data: {
    ...
    }
  });
  ```
    ---

* ### 2.2. Methods and example

  The library only contains one method that allows us to connect with the server and send the data, `logging_n3xgen`,

  The method receives two parameters, the first parameter is to send the information, the second is to indicate the
  level
  of the info, the following levels are available.

  **_Levels_**:
  ```javascript
  {
  info: "info",
  error: "error",
  debug: "debug",
  warn: "warn"
  }
  ```
  Example using the method:
```javascript
try {
  const content = req.body;
  const result = await logging_n3xgen(content, constants.log_levels.info);
  let {
    data
  } = result;
  res.status(200).json(data);
} catch (e) {
  logging_n3xgen(e, constants.log_levels.error);
  log.error(e.toString());
  res.status(500).json(e);
}
```

> The method is async, but is recommended use it without an async, how block catch in example

