log4js-node-console
TypeScript icon, indicating that this package has built-in type declarations

1.3.1 • Public • Published

log4js-node-console

Compatibility layer between log4js library and Node.js console .

This will allow you to replace the default Node.js console with log4js-node, and keep logging using console while keeping all of the flexibility jog4js-node provides.

Logging functions will automatically determine che log4js category based on what has called them. The automatic log4js-node category format is: filename[.Class][.function()], with / in paths replaced by ..

For node modules that use console for logging, the name will be node_modules.<module_name>.<module_file>[.Class][.function()], with all path elements between the main directory containing the module and the filename in which logging occurs stripped for brevity.

Example usage

File loggerConfiguration.json :

{
	"appenders": {
		"console": {
			"type": "console",
			"layout": {"type": "pattern", "pattern": "%p [%c] - %m"}
		}
	},
	"categories": {
		"default": {
			"appenders": ["console", "rollingFile"],
			"level": "trace",
			"enableCallStack": true
		}
	}
}

File index.js

const log4jsConsole = require('log4js-node-console');

console = new log4jsConsole('loggerConfiguration.json');

console.log('Hello World');
console.error('This is Error message');
console.warn('This is Warn message');
console.info('This is Info message')
console.debug('This is Debug message');
console.trace('This is Trace message');
foo();

function foo()
{
    console.info('foo() called')
}

Will output (depending on your config):

INFO [index] - Hello World
ERROR [index] - This is Error message
WARN [index] -This is Warn message
INFO [index] - This is Info message
DEBUG [index] - This is Debug message
TRACE [index] - This is Trace message
TRACE [index.foo()] - foo() called

Dependencies

  • log4js
  • app-root-dir: for stripping the location of file that is logging during automatic category name determination
  • node-watch (optional): used for monitoring log4js configuration file and automatically reloading log4js configuration when it changes.

API

The API is 100% same as the one of Node.js console with exception of the constructor.

Log4jsConsole(config, options)

Will construct a new instance of log4jsConsole compatibility layer.

Parameters:

Parameter Type Description
config string or object Configuration to be passed to log4js . See log4js documentation for details
options object Options for log4js-node-console. See below for details.

Log4js-node-console options

You can pass optional object to Log4jsConsole constructor specifying some optional configuration options:

Option Type Default Description
watchConfig boolean false Watch the configuration file for changes and reload log4js-node when it changes.
assertLevel string warn To which log level assert() should output it's messages.
countLevel string debug To which log level count() should output it's messages.
dirLevel string debug To which log level dir() and dirxml() should output it's messages.
tableLevel string info To which log level table() should output it's messages.
includeFunctionInCategory boolean true Wether or not to include function and class names in automatically generated category name
ignoreCategoryElements string[] [] List of strings to ignore when constructing category name.

Note that for watchConfig to work an optional dependency node-watch needs to be installed and the config passed needs to be a string containing path to a json file containing log4js-node configuration.

License

GNU GPL v3 or later

Copyright (c) 2023 Pawel Soltys

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Package Sidebar

Install

npm i log4js-node-console

Weekly Downloads

31

Version

1.3.1

License

GPL-3.0-or-later

Unpacked Size

58.5 kB

Total Files

9

Last publish

Collaborators

  • l0ner