Simple Javascript logger for Node.js and Browsers
DEMO Open the dev tools to see the log output
logplease does two simple things: output log messages to the console and/or to a file (Node.js only) and display the log messages with nice colors. Inspired by log4js and debug.
- Log messages to stdout or a file
- Customize the log messages
- Log levels
- Colors!
- Work in Node.js and Browsers
npm install logplease
npm run example
Open example/index.html
in your browser.
See example/example.js for details.
const Logger = require('logplease');
const logger = Logger.create('utils');
logger.debug(`This is a debug message`);
logger.log(`This is a log message`); // alias for debug()
logger.info(`This is a info message`);
logger.warn(`This is a warning`);
logger.error(`This is an error`);
Default log level is DEBUG
. You can set the log level with LOG
environment variable, eg. LOG=debug node example/example.js
. See Log levels for available options.
There's an ES5 build in es5/
which you can include if you need ES5 compatibility, eg. with Webpack.
Copy dist/logplease.min.js
to your javascripts directory and include it in your html. See example/index.html for details.
<body>
<script type="text/javascript" src="dist/logplease.min.js" charset="utf-8"></script>
<script type="text/javascript">
var logger = Logger.create('logger name');
logger.debug(`This is a debug message`);
logger.log(`This is a log message`); // alias for debug()
logger.info(`This is a info message`);
logger.warn(`This is a warning`);
logger.error(`This is an error`);
</script>
</body>
You can customize your logger to not show the timestamp or the log level, disable colors or specify, if using a log file, to overwrite the log file at start instead of appending to it.
const Logger = require('logplease');
const logger = Logger.create("logger name", options);
Available options and defaults:
const options = {
useColors: true, // Enable colors
color: Colors.White, // Set the color of the logger
showTimestamp: true, // Display timestamp in the log message
useLocalTime: false, // Display timestamp in local timezone
showLevel: true, // Display log level in the log message
filename: null, // Set file path to log to a file
appendFile: true, // Append logfile instead of overwriting
};
DEBUG
INFO
WARN
ERROR
NONE
Default log level is DEBUG
. To display errors only, use ERROR
. To turn off all logging, use NONE
.
You can set a global log level to display only the wanted log messages.
const Logger = require('logplease');
Logger.setLogLevel(Logger.LogLevels.ERROR) // Show only ERROR messages
// or
Logger.setLogLevel('ERROR')
You can mute all loggers with log level NONE:
Logger.setLogLevel(Logger.LogLevels.NONE) // output nothing
You can set a global log file to which all loggers write to.
const Logger = require('logplease');
const logger1 = Logger.create("logger1");
const logger2 = Logger.create("logger2");
Logger.setLogfile('debug.log');
logger1.debug('hello world 1');
logger2.debug('hello world 2');
// ==> 'debug.log' contains both log messages
You can set a log file per logger.
const Logger = require('logplease');
const logger1 = Logger.create("logger1", { filename: 'debug.log' });
const logger2 = Logger.create("logger2");
logger1.debug('hello world 1'); // writes to 'debug.log'
logger2.debug('hello world 2'); // doesn't write to 'debug.log'
You can set a color per logger. Default color in Node.js is White and in the browser Black.
const Logger = require('logplease');
const logger = Logger.create("logger name", { color: Logger.Colors.Yellow });
Colors:
Black, Red, Green, Yellow, Blue, Magenta, Cyan, Grey, White
Run tests with:
npm test
Install build dependencies:
npm install
Build the browser distributable and examples:
npm run build
Build the browser distributable only:
npm run build:dist
The distributable file will be located in dist/logplease.min.js
Build the browser example:
npm run build:examples