Socket
Socket
Sign inDemoInstall

@wdio/logger

Package Overview
Dependencies
5
Maintainers
3
Versions
112
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

@wdio/logger

A helper utility for logging of WebdriverIO packages


Version published
Maintainers
3
Weekly downloads
1,890,616
decreased by-6.99%

Weekly downloads

Package description

What is @wdio/logger?

The @wdio/logger package is a utility used within the WebdriverIO testing framework to facilitate logging. It allows developers to create namespaced loggers that can be used to output messages to the console or to files, depending on the configuration. It is designed to work seamlessly with the WebdriverIO ecosystem but can also be used independently for logging purposes in Node.js applications.

What are @wdio/logger's main functionalities?

Creating a Logger Instance

This feature allows you to create a new logger instance with a specific namespace. You can then use this instance to log messages at different levels, such as info, warn, error, etc.

const logger = require('@wdio/logger').default('my-logger');
logger.info('This is an info message.');

Setting Log Levels

This feature allows you to set the log level for a specific logger instance. Messages below the set level will not be logged.

const logger = require('@wdio/logger').default('my-logger');
logger.setLevel('info');
logger.info('This will be logged.');
logger.debug('This will not be logged.');

Logging Messages

This feature is used to log messages at different severity levels. The available methods are info, warn, error, and others, each corresponding to a level of importance.

const logger = require('@wdio/logger').default('my-logger');
logger.info('Informational message');
logger.warn('Warning message');
logger.error('Error message');

Other packages similar to @wdio/logger

Readme

Source

WDIO Logger Utility

A helper utility for logging of WebdriverIO packages

This package is used across all WebdriverIO packages to log information using the loglevel package. It can also be used for any other arbitrary Node.js project.

Install

To install the package just call

npm install @wdio/logger

or when adding it to a WebdriverIO subpackage:

lerna add @wdio/logger --scope <subpackage>

Usage

The package exposes a logger function that you can use to register an instance for your scoped package:

import logger from '@wdio/logger'

const log = logger('myPackage')
log.info('some logs')

For more info see loglevel package on NPM.

Custom Log Levels

This package extends the log levels available in loglevel by introducing a new level called progress.

The progress level is particularly useful when you need to dynamically update a specific line in the terminal. For example, it can be utilized to display the download progress of browsers or drivers.

Notably, the progress level is equivalent to the info level. Therefore, if you set the log level to error or silent, any progress logs will be suppressed.

It's important to mention that progress writes directly to process.stdout, and these logs won't be captured in any log files.

To ensure consistent formatting with subsequent logs while using progress, it's essential to clear it at the end. To do so, simply call progress with an empty string, which will clear the last line:

log.progress('')

Illustrative Usage of Progress

import logger from '@wdio/logger';

const log = logger('internal');

const totalSize = 100;
let uploadedSize = 0;

const uploadInterval = setInterval(() => {
	const chunkSize = 10;
	uploadedSize += chunkSize;
	const data = `Progress: ${(uploadedSize * 100) / totalSize}%`;
	log.progress(data);
	if (uploadedSize >= totalSize) {
		clearInterval(uploadInterval);
		log.progress(''); // Called at the end to maintain the alignment of subsequent logs.
		console.log('Upload complete.');
	}
}, 100);

Keywords

FAQs

Last updated on 17 Jan 2024

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc