logger-clearable
A logger that is clearable
Usage
'use strict'
// create our clearable logger
const logger = require('logger-clearable').create()
const method = 'log'
// log the date every second
const timer = setInterval(function () {
if (method === 'log') {
const date = new Date()
const time = date.toISOString()
logger.log(time)
} else {
// the above will actually call: logger.queue(() => time)
// instead, we can use queue directly:
// using queue direclty is more performant as
// any setup for our particular message will happen only if that message will be written
// this is applicable as logger won't bother writing messages that would be cleared instantly
// e.g. logger.log('hello').log('world') would otherwise write 'hello' then have to clear it right away
// instead, logger just skips writing 'hello' and will just write 'world'
logger.queue(function () {
const date = new Date()
const time = date.toISOString()
return time
})
}
}, 100)
// on ctrl+c close the timer and discard any upcoming logs
process.on('SIGINT', () => {
// stop any more calls to logger
clearInterval(timer)
// discard any logger queued updated
logger.discard()
// and clear the log
logger.clear()
})
Install
npm
- Install:
npm install --save logger-clearable
- Import:
import * as pkg from ('logger-clearable')
- Require:
const pkg = require('logger-clearable')
Editions
This package is published with the following editions:
-
logger-clearable
aliaseslogger-clearable/index.cjs
which uses the Editions Autoloader to automatically select the correct edition for the consumer's environment -
logger-clearable/source/index.js
is ESNext source code for Node.js 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules -
logger-clearable/edition-node-4/index.js
is ESNext compiled for Node.js 4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules
TypeScript
This project provides its type information via inline JSDoc Comments. To make use of this in TypeScript, set your maxNodeModuleJsDepth
compiler option to 5
or thereabouts. You can accomplish this via your tsconfig.json
file like so:
{
"compilerOptions": {
"maxNodeModuleJsDepth": 5
}
}
History
Discover the release history by heading on over to the HISTORY.md
file.
Backers
Code
Discover how to contribute via the CONTRIBUTING.md
file.
Authors
- Benjamin Lupton — Accelerating collaborative wisdom.
Maintainers
- Benjamin Lupton — Accelerating collaborative wisdom.
Contributors
Finances
Sponsors
- Andrew Nesbitt — Software engineer and researcher
- Balsa — We're Balsa, and we're building tools for builders.
- Codecov — Empower developers with tools to improve code quality and testing.
- Poonacha Medappa
- Rob Morris
- Sentry — Real-time crash reporting for your web apps, mobile apps, and games.
- Syntax — Syntax Podcast
Donors
- Andrew Nesbitt
- Armen Mkrtchian
- Balsa
- Chad
- Codecov
- dr.dimitru
- Elliott Ditman
- entroniq
- GitHub
- Hunter Beast
- Jean-Luc Geering
- Michael Duane Mooring
- Michael Harry Scepaniak
- Mohammed Shah
- Mr. Henry
- Nermal
- Pleo
- Poonacha Medappa
- Rob Morris
- Robert de Forest
- Sentry
- ServieJS
- Skunk Team
- Syntax
- WriterJohnBuck
License
Unless stated otherwise all works are:
- Copyright © Benjamin Lupton
and licensed under: