1.3.1 • Published 12 months ago

log4js-node-console v1.3.1

Weekly downloads
-
License
GPL-3.0-or-later
Repository
github
Last release
12 months ago

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:

ParameterTypeDescription
configstring or objectConfiguration to be passed to log4js . See log4js documentation for details
optionsobjectOptions 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:

OptionTypeDefaultDescription
watchConfigbooleanfalseWatch the configuration file for changes and reload log4js-node when it changes.
assertLevelstringwarnTo which log level assert() should output it's messages.
countLevelstringdebugTo which log level count() should output it's messages.
dirLevelstringdebugTo which log level dir() and dirxml() should output it's messages.
tableLevelstringinfoTo which log level table() should output it's messages.
includeFunctionInCategorybooleantrueWether or not to include function and class names in automatically generated category name
ignoreCategoryElementsstring[][]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/.

1.2.6

12 months ago

1.3.1

12 months ago

1.3.0

12 months ago

1.2.0

1 year ago

1.1.1

1 year ago

1.1.0

1 year ago

1.2.5

1 year ago

1.2.4

1 year ago

1.2.3

1 year ago

1.2.2

1 year ago

1.2.1

1 year ago

1.1.2

1 year ago

1.0.0

1 year ago