5.0.1 • Published 7 years ago
oh-my-log v5.0.1
oh-my-log
Beautiful console logs for your console applications with string substitution using
fürmat
& styling with Chalk.
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 optionaloptions
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:
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