5.0.1 • Published 7 years ago

oh-my-log v5.0.1

Weekly downloads
73
License
ISC
Repository
github
Last release
7 years ago

oh-my-log version License

Beautiful console logs for your console applications with string substitution using fürmat & styling with Chalk.

Build Status Downloads Code Climate Coverage Status Dependency Status Dependencies

Install

npm install --only=production --save oh-my-log

API

myLog(name, options)

  • name (String, Required): The name/label to use
  • options (Object, Optional): An optional options object may be passed that alters certain behaviours

Returns: Function The logging function

const logger = require('oh-my-log')
const log = logger('😄')

log('foo')

The above example will output:

example

  • Create custom local variables:

    const log = logger('😄', {
      locals: {
        me: 'ahmad'
      }
    })
    
    log('Hi, I\'m %me. repeat, my name is %me') // outputs: `Hi, my name is ahmad. repeat, my name is ahmad`
  • Supports creating custom modifiers:

    const log = logger('😄', {
      modifiers: {
        upper: (string) => string.toUpperCase()
      }
    })
    
    log('%s:upper', 'foo') // outputs `FOO`
  • Use chained Chalk styles as modifiers:

    const log = logger('😄')
    
    log('%s:red:bold', 'foo')
  • Combine for extra magic:

    const log = logger('😄', {
      locals: {
        me: 'ahmad'
      },
      modifiers: {
        upper: (string) => string.toUpperCase()
      }
    })

log('Hi, I\'m %me:upper. repeat, my name is %me:upper:red:bold') // outputs a colored version of: Hi, my name is ahmad. repeat, my name is ahmad

### Options

Name        | Type       | Required | Description                                                                         | Default         
----------- | ---------- | -------- | ----------------------------------------------------------------------------------- | ----------------
`prefix`    | `String`   | `✖️`      | prefix this string after substitution with `locals` values using [`fürmat`][furmat] | `[%name] %date:`
`locals`    | `Object`   | `✖️`      | `locals` object, _see [`fürmat`][furmat] for details_                               | `false`         
`modifiers` | `Object`   | `✖️`      | custom modifiers, _see [`fürmat`][furmat] for details_                              | `{}`            
`chalk`     | `Boolean`  | `✖️`      | enable/disable chalk modifiers support _see [`fürmat`][furmat] for details_         | `true`          
`date`      | `String`   | `✖️`      | any [`dateformat`][dateformat] compatible value                                     | `hh:MM:ss TT`   
`func`      | `Function` | `✖️`      | The logging function                                                                | `console.log`   

## [`fürmat`][furmat] & [`Chalk`][chalk]

`oh-my-log` relies heavily on `fürmat` for styling text *(using `chalk`)* and adding modifiers functions for extended formating, please review [`fürmat`][furmat] and [`chalk`][chalk] documentation for more details on how to use those modules.


`oh-my-log` will also look for `options` object in your `package.json` file. *This is accomplished using [`pkg-config`][pkg-config], refer to `pkg-config`'s [README][pkg-config-readme] for more info*

---
> :copyright: [ahmadnassri.com](https://www.ahmadnassri.com/)  · 
> License: [ISC][license-url]  · 
> Github: [@ahmadnassri](https://github.com/ahmadnassri)  · 
> Twitter: [@ahmadnassri](https://twitter.com/ahmadnassri)

[license-url]: http://choosealicense.com/licenses/isc/
[license-image]: https://img.shields.io/github/license/ahmadnassri/oh-my-log.svg?style=flat-square

[travis-url]: https://travis-ci.org/ahmadnassri/oh-my-log
[travis-image]: https://img.shields.io/travis/ahmadnassri/oh-my-log.svg?style=flat-square

[npm-url]: https://www.npmjs.com/package/oh-my-log
[npm-version]: https://img.shields.io/npm/v/oh-my-log.svg?style=flat-square
[npm-downloads]: https://img.shields.io/npm/dm/oh-my-log.svg?style=flat-square

[codeclimate-url]: https://codeclimate.com/github/ahmadnassri/oh-my-log
[codeclimate-quality]: https://img.shields.io/codeclimate/github/ahmadnassri/oh-my-log.svg?style=flat-square
[codeclimate-coverage]: https://img.shields.io/codeclimate/coverage/github/ahmadnassri/oh-my-log.svg?style=flat-square

[david-url]: https://david-dm.org/ahmadnassri/oh-my-log
[david-image]: https://img.shields.io/david/ahmadnassri/oh-my-log.svg?style=flat-square

[dependencyci-url]: https://dependencyci.com/github/ahmadnassri/oh-my-log
[dependencyci-image]: https://dependencyci.com/github/ahmadnassri/oh-my-log/badge?style=flat-square

[chalk]: https://github.com/chalk/chalk
[furmat]: https://github.com/ahmadnassri/furmat
[dateformat]: https://www.npmjs.com/package/dateformat

[pkg-config]: https://www.npmjs.com/package/pkg-config
[pkg-config-readme]: https://github.com/ahmadnassri/pkg-config/blob/master/README.md