0.0.2 • Published 4 years ago

@niyojs/logger v0.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
4 years ago

README

A custom console API which provides conditional logging and the capability of storing logs in various environments.

import { Logger, LogStorage } from '@niyojs/logger'

const logger = Logger.create({
  // Origin
  src: 'my-module',
  // Print log messages to the console
  // if the log level of the message is "debug" and below
  level: 'debug',
  storages: [
    new LogStorage({
      // Store log messages if the log level of the message is "warn" and below
      level: 'warn',
      fn: entry => {
        // Your custom function to store log
        // Runs synchronously
      }
    })
  ]
})

// or
const logger = Logger.create({ src: 'example', level: 'info' }).add(
  yourStoragePlugin({
    // ...parameters
  })
)

Below methods can be used for logging in addition to the standard console methods (debug, error, info, warn, trace):

  • fatal: Critical errors (console.error)
  • todo: Todo messages (console.warn)
  • success: Success messages (console.info)
  • newline: Prints new lines to the console

Levels

Default log levels:

LevelSeverityDescription
off0Silent mode
fatal1Critical errors
error2Errors
success3Success messages
info4Info messages
todo5To-do messages
warn6Warnings
debug7Debugging
trace8Tracing

Log levels can be customized via:

import { setLogLevels } from '@niyojs/logger'
setLogLevels({
  // Your custom log levels
})

Styles

The messages are printed to the console with styles. See DEFAULT_NODE_STYLES (chalk) and DEFAULT_BROWSER_STYLES (css) for their default values.

Log styles can be customized via:

import { setNodeStyles, setBrowserStyles } from '@niyojs/logger'
setNodeStyles({
  // Your custom log levels
})
setBrowserStyles({
  // Your custom log levels
})

Storages

See this example to see how log messages are saved to the files.

You may run all the examples via yarn --cwd packages/logger eg command.