Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
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
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.