npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

log4js-node-console

v1.3.1

Published

Compatibility layer between log4js and Node.js console

Downloads

109

Readme

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/.