# pine

> A logging utility.

Latest version **1.1.1** (published 2016-04-25) · 0 weekly downloads

## Install

```sh
npm install pine
pnpm add pine
yarn add pine
bun add pine
```

## 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.1 |
| Published | 2016-04-25 |
| First published | 2014-06-05 |
| Weekly downloads | 0 |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 3 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 14 |
| Author | Erik Toth |
| Maintainers | jasisk, tlivings, totherik |
| Keywords | logging |

## Links

- npm: https://www.npmjs.com/package/pine
- Repository: https://github.com/krakenjs/pine
- Homepage: https://github.com/krakenjs/pine#readme
- Issues: https://github.com/krakenjs/pine/issues
- npm.io page: https://npm.io/package/pine

## Dependencies (3)

- [caller](https://npm.io/package/caller.md) ^1.0.0
- [winston](https://npm.io/package/winston.md) ^2.2.0
- [lodash-node](https://npm.io/package/lodash-node.md) ^2.4.1

## 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

- 1.1.1 (latest) — 2016-04-25
- 1.1.0 — 2014-10-02
- 1.0.0 — 2014-06-20
- 0.1.1 — 2014-06-05

## README

pine
====

Lead Maintainer: [Jean-Charles Sisk](https://github.com/jasisk)  

[![Build Status](https://travis-ci.org/krakenjs/pine.svg?branch=master)](https://travis-ci.org/krakenjs/pine)  

A simple logging wrapper for Winston.


## Usage
```javascript
var pine = require('pine');

var log = pine();
log.info('Hello, world!');
log.error('This Department Has Worked %d Days Without Injury', 0);
```

```bash
[2014-05-22 21:00:39.704 UTC] - info: [26195:index.js] Hello, world!
[2014-05-22 21:00:39.705 UTC] - error: [26195:index.js] This Department Has Worked 0 Days Without Injury
```


### API
#### `pine([name] [,options])`
- `name` (optional, *String*) - If not provided, defaults to file path relative to parent package.
- `options` (optional, *Object*) - Same options as `pine.configure`. When provided will create logger with provided
settings, using configured global settings as defaults.

Invoke `pine` directly to get a logger instance. The API of the logger is determined by the configured levels, which defaults
to npm levels: silly, debug, verbose, info, warn, error. Additionally, there is a `log` method which accepts the desired
level as it's first argument. Each method also supports `util.format`-like string interpolation.

```javascript
var log = pine();
log.silly('Uptime: %d days', 10);
log.debug('Helpful information');
log.verbose('More information');
log.info('Did you know...');
log.warn('Well, actually...');
log.error('Iceberg!');
```


#### `pine.configure(options);`
- `options` - The default options which will be used for all loggers. The options object supports the
  following optional keys:
    - `basedir` - The root directory against which relative paths are calculated. Defaults to root of calling module.
    - `levels` - The winston levels to use. Defaults to `npm` levels.
    - `colors` - The colors to use. Defaults to `npm` colors.
      whether the client should reject a response from a server with invalid certificates.  This cannot be set at the
      same time as the `agent` option is set.
    - `transports` - The transports to use, mapping the transport name to settings. To use external or custom transports see
      the `modules` config options.
    - `modules` - Describe, for registration, the modules which implement the required custom transport.
    - `exceptionHandlers` - Transports to be used for logging exceptions. An object mapping the transport name to settings.


Set global logging settings, using built-in settings as defaults.

```javascript
pine.configure({

    basedir: __dirname,

    levels: undefined,

    colors: undefined,

    transports: {
        console: {
            level: 'debug'
        },
        mongodb: {
            level: 'info',
            db: 'logs',
            host: '127.0.0.1',
            port: '27017'
        }
    },

    modules: {
        mongodb: {
            name: 'winston-mongodb',
            property: 'MongoDB'
        }
    },

    exceptionHandlers: undefined
});
```


#### `pine.settings`
Read-only property of current global default settings.

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