# mini-logger

> A really simple logger for web server or others

Latest version **1.1.3** (published 2017-05-19) · MIT license · 0 weekly downloads

## Install

```sh
npm install mini-logger
pnpm add mini-logger
yarn add mini-logger
bun add mini-logger
```

## Health

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

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.1.3 |
| Published | 2017-05-19 |
| First published | 2014-07-09 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 7 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 49 |
| Author | dead_horse |
| Maintainers | dead_horse |
| Keywords | logger, error, custom, stream, file |

## Links

- npm: https://www.npmjs.com/package/mini-logger
- Repository: https://github.com/node-modules/mini-logger
- Homepage: https://github.com/node-modules/mini-logger#readme
- Issues: https://github.com/node-modules/mini-logger/issues
- npm.io page: https://npm.io/package/mini-logger

## Dependencies (7)

- [ms](https://npm.io/package/ms.md) ^2.0.0
- [copy-to](https://npm.io/package/copy-to.md) ^1.0.1
- [utility](https://npm.io/package/utility.md) ^1.8.0
- [sdk-base](https://npm.io/package/sdk-base.md) ^1.0.0
- [iconv-lite](https://npm.io/package/iconv-lite.md) ~0.4.4
- [logfilestream](https://npm.io/package/logfilestream.md) ^1.0.1
- [error-formatter](https://npm.io/package/error-formatter.md) ^1.0.3

## Alternatives

- [@sentry/react-native](https://npm.io/package/@sentry/react-native.md) — 2.6M weekly downloads
- [@ardatan/aggregate-error](https://npm.io/package/@ardatan/aggregate-error.md) — 708.1K weekly downloads
- [custom-error-generator](https://npm.io/package/custom-error-generator.md) — 2.0K weekly downloads
- [@technik-sde/prosemirror-recreate-transform](https://npm.io/package/@technik-sde/prosemirror-recreate-transform.md) — 1.5K weekly downloads
- [@suchipi/error-utils](https://npm.io/package/@suchipi/error-utils.md) — 78 weekly downloads

## Recent versions

- 1.1.3 (latest) — 2017-05-19
- 1.1.2 — 2017-03-24
- 1.1.1 — 2016-06-26
- 1.1.0 — 2015-12-11
- 1.0.0 — 2014-09-25
- 0.3.0 — 2014-07-11
- 0.2.0 — 2014-07-10
- 0.1.1 — 2014-07-09
- 0.1.0 — 2014-07-09

## README

mini-logger
------------

[![NPM version][npm-image]][npm-url]
[![build status][travis-image]][travis-url]
[![Coveralls][coveralls-image]][coveralls-url]
[![David deps][david-image]][david-url]
[![Known Vulnerabilities][snyk-image]][snyk-url]
[![npm download][download-image]][download-url]

[npm-image]: https://img.shields.io/npm/v/mini-logger.svg?style=flat-square
[npm-url]: https://npmjs.org/package/mini-logger
[travis-image]: https://img.shields.io/travis/node-modules/mini-logger.svg?style=flat-square
[travis-url]: https://travis-ci.org/node-modules/mini-logger
[coveralls-image]: https://img.shields.io/coveralls/node-modules/mini-logger.svg?style=flat-square
[coveralls-url]: https://coveralls.io/r/node-modules/mini-logger?branch=master
[david-image]: https://img.shields.io/david/node-modules/mini-logger.svg?style=flat-square
[david-url]: https://david-dm.org/node-modules/mini-logger
[snyk-image]: https://snyk.io/test/npm/mini-logger/badge.svg?style=flat-square
[snyk-url]: https://snyk.io/test/npm/mini-logger
[download-image]: https://img.shields.io/npm/dm/mini-logger.svg?style=flat-square
[download-url]: https://npmjs.org/package/mini-logger

A really simple logger for web server or others.

## Install

```bash
npm install mini-logger
```

## Goal

Log levels for logger is useless. Just let [debug](https://github.com/visionmedia/debug) module handle the debug log. All you need is error log and some custom categories. `mini-logger` just write logs into different files or stdout, do not care formats(only format Errors and Objects).

## Features

* rolling log files based on datetime
* easy to extended
* custom categories
* encoding support
* support Error / Object format

## Usage

### Example

```js
var path = require('path');
var Logger = require('mini-logger');
var logger = Logger({
  dir: path.join(__dirname, 'logs'),
  categories: [ 'http' ],
  format: '[{category}.]YYYY-MM-DD[.log]'
});

logger.error(new Error('error'));
logger.http('http request url: %s', 'https://github.com');
```

### Options

* **dir**: log directory path, required.
* **categories**: custom categories, all categories will add a method to Logger's instance
* **format**: log file name's format, will pase to momentjs to format. `{category}` will replace with logger category, default is `[{category.}]YYYY-MM-DD[.log]`
* **stdout**: write logs into stdout, default is `false`
* **file**: write logs into file, default is `true`
* **errorFormater**: formater for errors, default is [error-formater](https://github.com/node-modules/error-formater)
* **seperator**: the seperator of each line of logs, default is `os.EOL + os.EOL`
* **encoding**: output logs' encoding, default is `utf-8`
* **flushInterval**: all logs will cache in memory first, every `flushInterval` ms flush into files. default is `1s`
* **duration**: cut the logs every `duration` ms. default is `1h`
* **mkdir**: everytime before create a writeStream, will try to `mkdirp` first. useful when format is like `YYYY/MM/DD/[{category}.log]`, default to false
* **timestamp**: write timestamp with format YYYYMMDDHHmmssSSS before every line of logs, default is false

### Events

Logger will emit an error event when any write streams emit an error. If you don't listen this `error` event, it will default hanlde by:

```js
function onerror(err) {
  console.error(err.stack);
}
```

## License

[MIT](LICENSE)

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