
Security News
TC39 Advances Temporal to Stage 4 Alongside Several ECMAScript Proposals
TC39’s March 2026 meeting advanced eight ECMAScript proposals, including Temporal reaching Stage 4 and securing its place in the ECMAScript 2026 specification.
@sap-ux/logger
Advanced tools
@sap-ux/loggerThis is a simple logging library. It uses Winston underneath to do the heavy-lifting. The API is agnostic to any particular logging library. Don't depend on any Winston-specific implemenation as the underlying library may change in the future.
Add the package @sap-ux/logger to your project using your preferred package manager.
In Typescript/ES6, import the logger and instantiate it. By default the log level is info and the logs are sent to the console.
import { ToolsLogger } from '@sap-ux/logger';
...
const logger = new ToolsLogger();
...
logger.info('This is an information message');
...
logger.warn('This is a warning');
...
logger.error('This is an error!');
// Can also log objects
logger.debug({a: 42, b: 'some value'});
| Option | Default Value | Description |
|---|---|---|
logLevel | LogLevel.Info | Log only if equal to or more severe than this level (supported levels) |
transports | ConsoleTransport | An array of transports |
Log levels are exposed an as enumeration. The following levels are available, in decreasing order of severity:
These are the targets of the log messages. You can have multiple targets for a single logger. The targets can be added and removed dynamically, if required.
The following transports are currently supported:
ConsoleTransportThis is used to write to the console.
FileTransportThis is used to write to files. Logs are appended to files. Currently there's no support to rotate logs.
VSCodeTransportThis is used to write to an output channel in VS Code.
NullTransportThis is the equivalent of writing to /dev/null. If an API needs a logger and you really don't want to capture logs, you can use NullTransport to use completely ignore the logs.
error(), warn(), info() and debug() methods can be used to either print log a string or an object.
You can add(), remove() transport dynamically. transports() returns a list of the current transports of the logger.
The unit test file can be used as an example to explore the logger's API: ./test/unit/wiston-logger/logger.test.ts
Please refer to the debugging section in the project root README for help debugging the test.
The following options are not supported yet. There are no definite plans to add them in the future. They will be considered on a need-basis.
VSCodeTransport logs timestamped linesFileTransport logs in JSONConsoleTransport logs colored and timestamped lines (piping will remove color encoding though)Winston is a versatile logging library for Node.js that supports multiple transports (e.g., console, file, HTTP) and log levels. It is highly configurable and widely used in the Node.js community. Compared to @sap-ux/logger, Winston offers more flexibility and a broader range of features.
Bunyan is a simple and fast JSON logging library for Node.js services. It provides a structured logging approach and supports various log levels and outputs. Bunyan is known for its performance and ease of use. Compared to @sap-ux/logger, Bunyan focuses more on JSON-based structured logging.
Pino is a low-overhead, high-performance logging library for Node.js. It is designed to be extremely fast and efficient, making it suitable for high-throughput applications. Pino offers a similar set of features to @sap-ux/logger but emphasizes performance and speed.
FAQs
A simple logging module
The npm package @sap-ux/logger receives a total of 263,493 weekly downloads. As such, @sap-ux/logger popularity was classified as popular.
We found that @sap-ux/logger demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 4 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
TC39’s March 2026 meeting advanced eight ECMAScript proposals, including Temporal reaching Stage 4 and securing its place in the ECMAScript 2026 specification.

Research
/Security News
Since January 31, 2026, we identified at least 72 additional malicious Open VSX extensions, including transitive GlassWorm loader extensions targeting developers.

Research
Six malicious Packagist packages posing as OphimCMS themes contain trojanized jQuery that exfiltrates URLs, injects ads, and loads FUNNULL-linked redirects.