@seamapi/logger
TypeScript icon, indicating that this package has built-in type declarations

1.9.2 • Public • Published

Seam Typescript Logger

This module should be used instead of console.log, it has the following features:

  • Output for submodules can easily be shown/hidden with DEBUG=module-name (by default, DEBUG=seam-connect)
  • Supports "Context Wrappers" when logging

Usage

You shouldn't directly call this module when you want to log, you should create a lib/logger.ts file for each project, this way you can set up a logger with the correct DEBUG flag ("seam-connect") by default.

import { DatabaseConnection } from "types"
import defaultAxios from "axios"
import { Event } from "types/noiseaware"
import logger from "@seamapi/logger"
import wrappers from "nextjs-middleware-wrappers"

export const getEvents = wrappers(
  logger.withContext("getEvents"),
  async ({ user_token }): Promise<Array<Event>> => {
    logger.addToContext({ user_token })
    const axios = defaultAxios.create({
      baseURL: process.env.NOISEAWARE_PORTAL_BASE_URL,
      headers: {
        Authorization: `Bearer ${user_token}`,
      },
    })
    logger.logAxios(axios)

    const res = await axios.post("/events/list", {
      pageNum: 0,
      perPage: 100,
    })

    logger.debug("Got events", { events: res.data })

    return res.data.data
  }
)

export default getEvents

Output format is controlled by the environment variable SEAM_LOGGER_FORMAT, which can be set to pretty (default, used during development) or json.

Readme

Keywords

none

Package Sidebar

Install

npm i @seamapi/logger

Weekly Downloads

0

Version

1.9.2

License

MIT

Unpacked Size

61.2 kB

Total Files

21

Last publish

Collaborators

  • codetheweb
  • razorx
  • seambot
  • dawnho
  • sybohy