# @offirmo/practical-logger-types

> TypeScript types for Offirmo’s practical logger (no code)

Latest version **3.0.1** (published 2021-01-02) · Unlicense license · 0 weekly downloads

## Install

```sh
npm install @offirmo/practical-logger-types
pnpm add @offirmo/practical-logger-types
yarn add @offirmo/practical-logger-types
bun add @offirmo/practical-logger-types
```

## Health

**Score 30/100 (F)** — status: abandoned.

Positive: has types; esm support; no vulnerabilities; high quality score.

Warnings: low downloads.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 3.0.1 |
| Published | 2021-01-02 |
| First published | 2019-10-27 |
| Weekly downloads | 0 |
| License | Unlicense |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 0 |
| Unpacked size | 14.7 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Offirmo |
| Maintainers | offirmo |
| Keywords | logger, typescript |

## Links

- npm: https://www.npmjs.com/package/@offirmo/practical-logger-types
- Repository: https://github.com/Offirmo/offirmo-monorepo
- Homepage: https://github.com/Offirmo/offirmo-monorepo/tree/master/2-foundation/practical-logger-types
- Issues: https://github.com/Offirmo/offirmo-monorepo/issues
- npm.io page: https://npm.io/package/@offirmo/practical-logger-types

## Alternatives

- [cli-color](https://npm.io/package/cli-color.md) — 3.4M weekly downloads
- [log](https://npm.io/package/log.md) — 1.3M weekly downloads
- [logstash-client](https://npm.io/package/logstash-client.md) — 4.5K weekly downloads
- [@nocobase/plugin-logger](https://npm.io/package/@nocobase/plugin-logger.md) — 2.0K weekly downloads
- [child-process-debug](https://npm.io/package/child-process-debug.md) — 695 weekly downloads

## Recent versions

- 3.0.1 (latest) — 2021-01-02
- 3.0.0 — 2020-06-30
- 2.0.1 — 2019-12-12
- 2.0.0 — 2019-10-27

## README

<h1 align="center">
	Offirmo’s practical logger - TypeScript interfaces<br>
	<a href="https://www.offirmo.net/offirmo-monorepo/0-doc/modules-directory/index.html">
		<img src="https://www.offirmo.net/offirmo-monorepo/0-doc/quality-seal/offirmos_quality_seal.svg" alt="Offirmo’s quality seal">
	</a>
</h1>

<p align="center">
	<a alt="npm package page"
	  href="https://www.npmjs.com/package/@offirmo/practical-logger-types">
		<img alt="npm badge"
		  src="https://img.shields.io/npm/v/@offirmo/practical-logger-types.svg">
	</a>
	<a alt="dependencies analysis"
	  href="https://david-dm.org/offirmo/offirmo-monorepo?path=2-foundation%2Fpractical-logger-types">
		<img alt="dependencies badge"
		  src="https://img.shields.io/david/offirmo/offirmo-monorepo.svg?path=2-foundation%2Fpractical-logger-types">
	</a>
	<a alt="bundle size evaluation"
	  href="https://bundlephobia.com/result?p=@offirmo/practical-logger-types">
		<img alt="bundle size badge"
		  src="https://img.shields.io/bundlephobia/minzip/@offirmo/practical-logger-types.svg">
	</a>
	<a alt="license"
	  href="https://unlicense.org/">
		<img alt="license badge"
		  src="https://img.shields.io/badge/license-public_domain-brightgreen.svg">
	</a>
	<img alt="maintenance status badge"
	  src="https://img.shields.io/maintenance/yes/2021.svg">
</p>

This is an **internal** module of [Offirmo’s practical logger](https://practical-logger-js.netlify.app/).
* declares only TypeScript types
* **No code, 0 bytes** = will do nothing to your bundle size
* no dependencies


## Usage

**This is most likely not what you are looking for!**

See the actual implementations of those interfaces:
* minimal no-op: [@offirmo/practical-logger-minimal-noop](https://www.npmjs.com/package/@offirmo/practical-logger-minimal-noop)
* browser: [@offirmo/practical-logger-browser](https://www.npmjs.com/package/@offirmo/practical-logger-browser)
* node: [@offirmo/practical-logger-node](https://www.npmjs.com/package/@offirmo/practical-logger-node)

### Interface
A logger will have the following interface:
* `setLevel(level: LogLevel): void`
* `getLevel(): LogLevel`
* `addCommonDetails(hash: Readonly<{ [k: string]: any }>): void`
* Log primitives: (mirroring the log levels)
  * `fatal(message?: string, details?: Readonly<{ [k: string]: any }>): void`
  * `emerg(…) idem`
  * `alert(…) idem`
  * `crit(…) idem`
  * `error(…) idem`
  * `warning(…), warn(…) idem`
  * `notice(…) idem`
  * `info(…) idem`
  * `verbose(…) idem`
  * `log(…) idem`
  * `debug(…) idem`
  * `trace(…) idem`
  * `silly(…) idem`
* those functions are present for convenience but may not do anything (platform-dependent):
  * `group(groupTitle?: string): void`
  * `groupCollapsed(groupTitle?: string): void`
  * `groupEnd(): void`


## Concept
Other loggers:
* http://getpino.io/#/docs/benchmarks
* discovered later:  https://github.com/ianstormtaylor/browser-logger

## Credits
I had a look at bunyan's interface.

---
_Source: https://npm.io/package/@offirmo/practical-logger-types · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
