Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
logging-utils
Advanced tools
Utilities for configuring simple log level based logging functionality on an object
Utilities for configuring simple log level based logging functionality on an object.
The log levels supported are the following:
Main module:
This module is exported as a Node.js module.
Using npm:
$ npm i --save logging-utils
// To use the logging utilities
const logging = require('logging-utils');
// Valid logging levels
const LogLevel = logging.LogLevel;
// Logging configuration functions
const isLoggingConfigured = logging.isLoggingConfigured;
const configureLogging = logging.configureLogging;
// Convenience logging function
const log = logging.log;
const context = {}; // replace with your own target object to be configured
configureLogging(context);
// which is equivalent to:
configureLogging(context, {logLevel: LogLevel.INFO});
configureLogging(context, {logLevel: LogLevel.WARN});
const settings = {logLevel: LogLevel.DEBUG, useLevelPrefixes: false, useConsoleTrace: false, underlyingLogger: console}; // or your own settings
configureLogging(context, settings);
// OR with explicit forceConfiguration false
configureLogging(context, settings, undefined, false);
configureLogging(context, settings, undefined, true);
const log = configureLogging({});
configureLogging(context, undefined, options, true);
// Alternatively ...
configureLogging(context, options, undefined, true);
const options = undefined; // ... or any LoggingOptions you want to use to partially or fully override the default logging settings
configureLogging(context, {underlyingLogger: console}, options);
const CustomLogger = {/* ... */}; // implement your own custom logger if required
configureLogging(context, {underlyingLogger: CustomLogger}, options, true);
const options = { logLevel: LogLevel.DEBUG, useLevelPrefixes: true, useConsoleTrace: false }; // replace with your own options
configureLogging(context, undefined, options);
// OR just ...
configureLogging(context, options);
configureLogging(context, settings, options);
// OR with explicit forceConfiguration false ...
configureLogging(context, settings, options, false);
configureLogging(context, settings, options, true);
logLevel
setting or option during runtime configuration, set a logging level on
the environment variable named by the envLogLevelName
setting, which is also configurable and defaults to 'LOG_LEVEL'
.
Any valid logLevel
found with process.env[envLogLevelName]
will take precedence over any other logLevel
setting or option.// For unit testing, set the `LOG_LEVEL` environment variable programmatically
process.env.LOG_LEVEL = LogLevel.DEBUG;
// Alternatively, if you configured your own `envLogLevelName` as 'MyLogLevel', e.g.
configureLogging(context, {envLogLevelName: 'MyLogLevel'});
// then for unit testing, set your `MyLogLevel` environment variable programmatically
process.env.MyLogLevel = LogLevel.TRACE;
// Log an error with a strack trace
context.error('Error message 1', new Error('Boom').stack);
// Log an error without a stack trace
context.error('Error message 2');
// Log a warning (or do nothing when warnings are disabled)
context.warn('Warning message 1');
// To avoid building the warning message (when warnings are disabled)
if (context.warnEnabled) context.warn('Warning message 2');
// Log an info message (or do nothing when info messages are disabled)
context.info('Info message 1');
// To avoid building the info message (when info messages are disabled)
if (context.infoEnabled) context.info('Info message 2');
// Log a debug message (or do nothing when debug messages are disabled)
context.debug('Debug message 1');
// To avoid building the debug message (when debug messages are disabled)
if (context.debugEnabled) context.debug('Debug message 2');
// To log a trace message (or do nothing when trace messages are disabled)
context.trace('Trace message 1');
// To avoid building the trace message (when trace messages are disabled)
if (context.traceEnabled) context.trace('Trace message 2');
log
method):// To log a message at LogLevel.TRACE (or do nothing when trace messages are disabled)
context.log(LogLevel.ERROR, 'Error message 1', new Error('Boom').stack);
// Note that this will also work with console, but you won't get any suppression according to log level
console.log(LogLevel.TRACE, 'Trace message 1');
log
function):// Alternatively using log function
log(context, LogLevel.DEBUG, 'Debug message 1');
// Note that this will also work with console (and undefined), but you won't get any suppression according to log level
log(console, LogLevel.WARN, 'Warn message 1');
log(undefined, LogLevel.ERROR, 'Error message 1', new Error('Boom 2').stack);
This module's unit tests were developed with and must be run with tape. The unit tests have been tested on Node.js v4.3.2.
See the package source for more details.
core-functions
dependency to version 3.0.2logging.js
API (NOT BACKWARD COMPATIBLE!):
underlyingLogger
parameter from configureLogging
function, which was ignored when settings
were
provided and was also redundant, since it can be set via the settings
parameterconfigureLoggingWithSettings
, configureDefaultLogging
and getDefaultLoggingSettings
functionsERROR
, WARN
, INFO
, DEBUG
and TRACE
constants with properties in new LogLevel
constant to
simplify import & usage and changed their values to uppercase for consistencytoValidLogLevelOrDefault
functionLogging
typedef to Logger
log
method to the target object during configureLogging
to enable logging at a specified levellog
function, which delegates to new log
method to enable logging at a specified levelisValidLogLevel
and new cleanLogLevel
functionsenvLogLevelName
setting to enable configuration of the name of the environment variable in which to look
for a logLevel on process.env
(defaults to 'LOG_LEVEL' if undefined)process.env[envLogLevelName]
, where envLogLevelName
refers to the
configured name of the environment variable in which to look for a logLevel on process.env
core-functions
dependency to version 3.0.0core-functions
dependency to version 2.0.14core-functions
dependency to version 2.0.13core-functions
dependency to version 2.0.12LoggingSettings
& LoggingOptions
typedefs in type-defs.js
modulelogging.js
module to new type-defs.js
moduleLogging
typedefconfigureLogging
, configureLoggingWithSettings
and configureDefaultLogging
functions
to new Logging
typecore-functions
dependency to version 2.0.11JSON.stringify
instead of
Strings.stringify
to avoid verbose logging of all of console
object's properties and functionscore-functions
dependency to version 2.0.10core-functions
dependency to version 2.0.9core-functions
dependency to version 2.0.8core-functions
dependency to version 2.0.7tape
dependency to 4.6.3logging.js
module:
configureLogging
function to configureLoggingWithSettings
configureLoggingWithSettingsOrOptions
function to configureLogging
configureLoggingIfNotConfigured
functioncore-functions
dependency to version 2.0.5logging.js
module:
configureLoggingWithSettingsOrOptions
function to simplify programmatic configurationlogging.js
module:
configureLoggingIfNotConfigured
functionlogging.js
module:
configureLoggingIfNotConfigured
functionlogging.js
module:
configureDefaultLogging
function to accept a new options
argument of type LoggingOptions
to enable optional, partial overriding of default logging settingsgetLoggingSettingsOrDefaults
function to getDefaultLoggingSettings
logging-utils
configuration API to synchronize with similar changes done to aws-core-utils/stages
configuration and aws-stream-consumer/stream-processing
configuration.
configureLogging
function API to replace multiple arguments with single settings
argumentgetLoggingSettingsOrDefaults
function to facilitate overriding default settingsconfigureDefaultLogging
function to use new getLoggingSettingsOrDefaults
functionLoggingSettings
and LoggingOptions
to better define parameter and return typesconfigureLoggingFromConfig
functionfinaliseLogLevel
, finaliseUseLevelPrefixes
and finaliseUseConsoleTrace
functionsdefaultLogLevel
, defaultUseLevelPrefixes
and defaultUseConsoleTrace
properties & config.json settingslogging-utils
module to logging
module.core-functions
dependency to version 2.0.3core-functions
dependency to version 2.0.2underlyingLogger
and forceConfiguration
arguments to the configureDefaultLogging
functionconfigureLoggingFromConfig
function to simplify configuring from a config object/fileconfigureDefaultLogging
and configureLoggingFromConfig
functionscore-functions
dependency to version 2.0.1core-functions/functions
functions with standard JS functionalitycore-functions
dependency to version 2.0.0configureDefaultLogging
function for clarity.FAQs
Utilities for configuring simple log level based logging functionality on an object
The npm package logging-utils receives a total of 48 weekly downloads. As such, logging-utils popularity was classified as not popular.
We found that logging-utils demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.