py-logging

WebJar for py-logging

License

License

MIT
Categories

Categories

Logging Application Layer Libs
GroupId

GroupId

org.webjars.npm
ArtifactId

ArtifactId

py-logging
Last Version

Last Version

2.5.1
Release Date

Release Date

Type

Type

jar
Description

Description

py-logging
WebJar for py-logging
Project URL

Project URL

https://www.webjars.org
Source Code Management

Source Code Management

https://github.com/jose-pleonasm/py-logging

Download py-logging

How to add to project

<!-- https://jarcasting.com/artifacts/org.webjars.npm/py-logging/ -->
<dependency>
    <groupId>org.webjars.npm</groupId>
    <artifactId>py-logging</artifactId>
    <version>2.5.1</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.npm/py-logging/
implementation 'org.webjars.npm:py-logging:2.5.1'
// https://jarcasting.com/artifacts/org.webjars.npm/py-logging/
implementation ("org.webjars.npm:py-logging:2.5.1")
'org.webjars.npm:py-logging:jar:2.5.1'
<dependency org="org.webjars.npm" name="py-logging" rev="2.5.1">
  <artifact name="py-logging" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.npm', module='py-logging', version='2.5.1')
)
libraryDependencies += "org.webjars.npm" % "py-logging" % "2.5.1"
[org.webjars.npm/py-logging "2.5.1"]

Dependencies

There are no dependencies for this project. It is a standalone project that does not depend on any other jars.

Project Modules

There are no modules declared in this project.

py-logging

Javascript logging library based on the Python logging module.

NPM

Main features:

  • Hierarchical organization of loggers.
  • Handlers for various ways of log records processing.
  • Filters for very precise log records filtering.
  • Formatters for custom layout of log records in the final output.

More about Python logging here: https://docs.python.org/2/library/logging.html

Installation

npm install py-logging

Documentation

https://github.com/jose-pleonasm/py-logging/tree/master/API.md

Usage

A simplest way:

var logging = require('py-logging');

logging.info('My message to the world.');
// will do nothing, because default level is WARNING

logging.warning('My another message to the world.');
// will print a message to the console:
// WARNING:root:My another message to the world.

Recording log records in a file:

var logging = require('py-logging');
// for recording log records to the file is necessary to install nodekit
require('py-logging/nodekit').install(logging);

logging.basicConfig({ filename: 'example.log', level: 'DEBUG' });

logging.debug('I am going to say something...');
logging.info('Hello!');
// will create a file "example.log" with content like this:
// DEBUG:root:I am going to say something...
// INFO:root:Hello!

Custom layout of log records:

var logging = require('py-logging');

logging.basicConfig({
	format: '%(asctime) - %(levelname) - %(message)',
	timeFormat: '%ISO',
	level: 'DEBUG'
});

logging.info('So far so good.');
// 2017-02-12T15:02:02.910Z - INFO - So far so good.

Logging an error:

var logging = require('py-logging');

try {
	someDangerousFunction();
}
catch (error) {
	logging.error('An error occurred during the function call:', error);
}
// ERROR:root:An error occurred during the function call:
// ReferenceError: someDangerousFunction is not defined
//     at Object.<anonymous> (/example.js:6:2)
//     at Module._compile (module.js:571:32)
//     at Object.Module._extensions..js (module.js:580:10)
//     at Module.load (module.js:488:32)
//     at tryModuleLoad (module.js:447:12)
//     at Function.Module._load (module.js:439:3)
//     at Module.runMain (module.js:605:10)
//     at run (bootstrap_node.js:418:7)
//     at startup (bootstrap_node.js:139:9)
//     at bootstrap_node.js:533:3

Instantiating your own Logger:

var logging = require('py-logging');
var logger = logging.getLogger('name');

logging.basicConfig({ level: 'DEBUG' });

logger.info('Something specific for this logger.');
// INFO:name:Something specific for this logger.

More complex configuration:

var logging = require('py-logging');
// for recording log records to the file is necessary to install nodekit
require('py-logging/nodekit').install(logging);

var simpleFormatter = new logging.Formatter('%(levelname) %(name) %(message)');
var verboseFormatter = new logging.Formatter('%(asctime) %(levelname) %(name) %(message)');
var consoleHandler = new logging.ConsoleHandler();
var fileHandler = new logging.RotatingFileHandler('./example.log');
var foo = logging.getLogger('foo');
var bar = logging.getLogger('foo.bar');

consoleHandler.setFormatter(simpleFormatter);
consoleHandler.setLevel(logging.DEBUG);
foo.addHandler(consoleHandler);
foo.setLevel(logging.DEBUG);
fileHandler.setFormatter(verboseFormatter);
fileHandler.setLevel(logging.INFO);
bar.addHandler(fileHandler);

foo.info('First message.');
// will print a message to the console:
// INFO foo First message.

bar.info('Second message.');
// will print a message to the console:
// INFO foo.bar Second message.
// and into the file:
// 2017-02-12 15:43:52 INFO foo.bar Second message.

Or by a configuration object (can be JSON):

var logging = require('py-logging');
// for recording log records to the file is necessary to install nodekit
require('py-logging/nodekit').install(logging);

logging.config({
	'version': 1,
	'formatters': {
		'simple': {
			'format': '%(levelname) %(name) %(message)'
		},
		'verbose': {
			'format': '%(asctime) %(levelname) %(name) %(message)'
		}
	},
	'handlers': {
		'console': {
			'class': 'logging.ConsoleHandler',
			'formatter': 'simple',
			'level': 'DEBUG'
		},
		'file': {
			'class': 'logging.RotatingFileHandler',
			'filename': './example.log',
			'formatter': 'verbose',
			'level': 'INFO'
		}
	},
	'loggers': {
		'foo': {
			'level': 'DEBUG',
			'handlers': ['console']
		},
		'foo.bar': {
			'handlers': ['file']
		}
	}
});

logging.getLogger('foo').info('First message.');
// will print a message to the console:
// INFO foo First message.

logging.getLogger('foo.bar').info('Second message.');
// will print a message to the console:
// INFO foo.bar Second message.
// and into the file:
// 2017-02-12 15:43:52 INFO foo.bar Second message.

Versions

Version
2.5.1