Security News
RubyGems.org Adds New Maintainer Role
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
triple-beam
Advanced tools
Definitions of levels for logging purposes & shareable Symbol constants.
The triple-beam npm package is a module that provides constants for the Winston logging library, which is widely used in Node.js applications for logging purposes. It includes log levels, colors, and configuration utilities that can be used to customize and format log messages.
Log Levels
Triple-beam provides a set of predefined log levels that can be used to categorize log messages by their severity. This allows for filtering and controlling the flow of log output.
{"levels": {"info": 0, "warn": 1, "error": 2, "verbose": 3}}
Configurable Log Properties
It allows for the configuration of log properties using symbols, which ensures that log metadata is not overwritten when multiple transports are used in Winston.
{"MESSAGE": Symbol.for('message'), "LEVEL": Symbol.for('level')}
Custom Log Formats
Triple-beam provides constants that can be used to create custom log formats in Winston, allowing developers to define how log messages should be structured and presented.
const { format } = require('winston');
const { SPLAT, LEVEL, MESSAGE } = require('triple-beam');
const customFormat = format((info, opts) => {
info[SPLAT] = info[SPLAT] || [];
info[LEVEL] = info[LEVEL] || 'info';
info[MESSAGE] = `Custom format: ${info.message}`;
return info;
});
Loglevel is a logging library for JavaScript that provides a minimalistic and lightweight logging solution. It offers similar log level functionality but does not have the same level of configurability or integration with Winston as triple-beam.
Bunyan is a simple and fast JSON logging library for Node.js services. It provides log levels and custom serializers. While it has similar logging capabilities, it is a standalone logging library and does not serve as a set of constants for another library like triple-beam does for Winston.
Pino is a very low overhead Node.js logger, which also outputs logs in JSON format. It is designed for speed and provides different log levels. Pino is a full-fledged logging solution and not just a set of constants, making it more comparable to Winston itself rather than triple-beam.
Definitions of levels for logging purposes & shareable Symbol constants.
const { LEVEL } = require('triple-beam');
const colors = require('colors/safe');
const info = {
[LEVEL]: 'error',
level: 'error',
message: 'hey a logging message!'
};
// Colorize your log level!
info.level = colors.green(info.level);
// And still have an unmutated copy of your level!
console.log(info.level === 'error'); // false
console.log(info[LEVEL] === 'error'); // true
Tests are written with mocha
, assume
, and nyc
. They can be run with npm
:
npm test
FAQs
Definitions of levels for logging purposes & shareable Symbol constants.
We found that triple-beam demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers 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.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
Security News
Node.js will be enforcing stricter semver-major PR policies a month before major releases to enhance stability and ensure reliable release candidates.
Security News
Research
Socket's threat research team has detected five malicious npm packages targeting Roblox developers, deploying malware to steal credentials and personal data.