npm package: @ratatoskrts/logger
Description: Simple, pretty and powerful logger
Author: Jonathan Farber
Latest version: 2.2.3

<p style="text-align: center" align="center">
 <a href="https://github.com/Forty-SixNTwo/ratatoskr" target="_blank"><img src="./assets/ratatoskr_logo.svg" width="640" alt="@ratatoskrts logo"/></a>
</p>

<div align="center">

> Logo Designed By <cite>Inna Hotsiuk</cite>

   <h1>@ratatoskrts/logger</h1>

<!-- TODO: add repo logo -->

<!-- Shields -->

[![discord shield]](https://discord.gg/fFqCjNEqNP)
[![slack shield]](https://join.slack.com/t/ratatoskrworkspace/shared_invite/zt-1lfxzz4om-QM~E62Avq2ICEA59wAqCWA)
[![Conventional Commits shield]](https://www.conventionalcommits.org/en/v1.0.0/)
[![license shield]](https://choosealicense.com/licenses/mit/)

</div>

<hr />

> Simple, pretty and powerful logger written in TypeScript.

## Overview and Features

### Overview

A very simple and straight forward typescript logger library, with a consistent style and some super powers.

Used in all @ratatoskrts libraries, built to wrap around the native Node.JS console library and be node environment aware.

### Features

- Supports all common logging levels and others
- Colored, formatted, environment aware logging of stdout/stderr
- Configurable as a single instance, or as a native console wrapper

## Installation

```bash
# with npm
npm i @ratatoskrts/logger

# with yarn
yarn add @ratatoskrts/logger

# with pnpm
pnpm add @ratatoskrts/logger
```

## Usage

Quick start example.

> For running the bellow example please see the [examples] README file.

```typescript
import { overwriteConsole, logger } from '@ratatoskrts/logger'

// Instantiate a logger object
const log = logger()

const data = {
  a: 'l',
  b: 'm',
  c: [
    {
      d: 'n',
      e: 'o',
      f: 'p',
    },
  ],
  g: {
    h: 'q',
    i: 'r',
    j: 's',
  },
  k: ['t', 'u', 'v', 'w', 'x', 'y', 'z'],
}

// Styling `stdout/stderr`
log.style(log.gradient.ratatoskr(`Hello, and thank you for checking this cool logger out!!!`))

// Wrapping and override of native `console`
overwriteConsole()

console.log('This is a log')

console.info('This is an informational log')

console.info('This is a success log', { isSuccess: true })

console.error('This is a error log')

console.warn('This is a warn log')

console.debug('This is a debug log', data)

console.debug('This is a verbose log', { isVerbose: true }, data)

console.trace(/* 'This is a trace log' */)

console.log(
  'We can also read and print from "console"',
  { isPlain: true },
  log.color.green(`As well as ${log.format.underline('format')}/colorize it`),
  'And we can silence all stdout/stderr'
)

overwriteConsole(true /* Passing true will silence all stdout/stderr */)

console.log('The following will not be logged out')
```

## Building from source

<!-- TODO: fill in -->

### Building

<!-- TODO: fill in -->

### Testing

<!-- TODO: fill in -->

<hr />

## Additional Information & FAQ

### Contributing

Any and all contribution and/or involvement with this project, or any other `Ratatoskr.ts` project, is highly welcomed and appreciated.

> Please make sure to read the [Contribution guidelines] for this and any other `Ratatoskr.ts` project.

#### Documentation contributions

Please note that for all documentation contributions for this project as well, as all other `Ratatoskr.ts` projects are done via the [Docs repo], and all changes will be reflected back to each and every related project affected.

Please make sure to follow the [documentation conventions]

> Please make sure to read the [Docs README] for further information.

### Support

The following, [Slack Workspace] and [Discord Server] have been created in order to provide the `Ratatoskr.ts` community the proper channels of communication, in-order to support each other and grow as a community.

> Please make sure to read our [support page] along with our communities [code of conduct].

### License

[MIT License]

<!-- Hyperlinks -->

<!-- *Media* -->

<!-- Shields -->

[discord shield]: https://img.shields.io/badge/Discord-%20Chat-5865F2?style=flat&logo=discord
[slack shield]: https://img.shields.io/badge/Slack-%20Chat-4A154B?style=flat&logo=slack&logoColor=4A154B
[conventional commits shield]: https://img.shields.io/badge/Conventional-%20Commits-FE5196?style=flat&logo=conventionalcommits&logoColor=FE5196
[license shield]: https://img.shields.io/badge/MIT-%20License-181717?style=flat&logo=GitHub&logoColor=181717

<!-- *Internal* -->

[examples]: /examples/README.md
[code of conduct]: /CODE_OF_CONDUCT.md
[contribution guidelines]: /CONTRIBUTING.md
[documentation conventions]: /CONVENTIONS.md
[support page]: /SUPPORT.md
[mit license]: /LICENSE

<!-- *External* -->

[docs repo]: https://github.com/Forty-SixNTwo/docs
[docs readme]: https://github.com/Forty-SixNTwo/docs/blob/main/README.md
[discord server]: https://discord.gg/fFqCjNEqNP
[slack workspace]: https://join.slack.com/t/ratatoskrworkspace/shared_invite/zt-1lfxzz4om-QM~E62Avq2ICEA59wAqCWA