
Research
Supply Chain Attack on Axios Pulls Malicious Dependency from npm
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.
@arpinum/log
Advanced tools
We are drowning in information but starved for knowledge.
John Naisbitt
@arpinum/log is a simple module to log on stdout or stderr.
npm install @arpinum/log --save
Just import default logger and start yelling messages:
import { logger } from "@arpinum/log";
logger.info("Something happened");
Which outputs :
2017-01-30T09:15:04.821Z - info: [default] Something happened
Available methods are:
Each level uses corresponding method on console global object and fallback to console.log if missing for runtime
environment.
You can create a fine tuned logger:
import { createLogger } from "@arpinum/log";
const logger = createLogger({ level: "error" });
logger.info("Something happened");
logger.error("Some error");
Which outputs :
2017-01-30T09:23:33.417Z - error: [default] Some error
You can pass those options during logger creation:
all, debug, info, warn, error, offinfoARP_LOG_LEVEL env var may be used to set leveldefault.* (open bar)ARP_LOG_FILTER env var may be used to set filternew Date().toISOString()null if you do not want a date at allconsole methodsIf you have multiple logger instances with various categories, you can filter logs using filter options
or ARP_LOG_FILTER env var.
Example:
// program.js
const mainLogger = createLogger({ category: "main" });
const serviceLogger = createLogger({ category: "service" });
mainLogger.info("Application started");
serviceLogger.info("Doing some stuff");
May be run with LOG_FILTER=serv node program.js to output:
2017-01-30T09:32:31.351Z - info: [service] Doing some stuff
File name usage:
import { createLogger } from "@arpinum/log";
const logger = createLogger({ fileName: __filename });
logger.info("Something happened");
Which outputs :
2017-01-30T09:32:31.351Z - info: [MySuperClass] Something happened
getLogInputs will be called for each log with an object containing:
date: the current date stringcategory: the configured categorylevel: the logger levelargs: all the provided argsExample:
const logger = createLogger({
getLogInputs: ({ date, category, level, args }) => [
`${date}|${category}|${level}`,
...args,
],
});
logger.info("My", "message");
// 2019-11-19T16:45:58.419Z|default|info My message
FAQs
Simple module to log on stdout or stderr
We found that @arpinum/log demonstrated a healthy version release cadence and project activity because the last version was released less than 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.

Research
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.

Research
Malicious versions of the Telnyx Python SDK on PyPI delivered credential-stealing malware via a multi-stage supply chain attack.

Security News
TeamPCP is partnering with ransomware group Vect to turn open source supply chain attacks on tools like Trivy and LiteLLM into large-scale ransomware operations.