Skip to main content

Getting Started

Introduction

A Logger implementation that implements Sapphire's ILogger interface and implements timestamp and style formatting with the blazing fast colorette library.

Installation

npm install @sapphire/plugin-logger @sapphire/framework

Usage

This registers the necessary options and methods in the Sapphire client to be able to use the log plugin.

// Main bot file
// Be sure to register the plugin before instantiating the client.
require('@sapphire/plugin-logger/register');

In order to use the Logger in any place other than a piece (commands, arguments, preconditions, etc.), you must first import the container property of @sapphire/framework. For pieces, you can simply use this.container.logger to access Logger methods.

const { container } = require('@sapphire/framework');

class MyAwesomeService {
printAwesomeLog() {
container.logger.info('log message');
}
}
module.exports = {
MyAwesomeService
};

Here is an example ping command, demonstrating the use of this.container.logger from within a piece by omitting the explicit import.

// ping command

const { Command } = require('@sapphire/framework');

class PingCommand extends Command {
constructor(context, options) {
super(context, {
...options,
description: 'ping pong'
});
}

async messageRun(message) {
this.container.logger.warn('warning message');
}
}
module.exports = {
PingCommand
};

Types of logs

  1. trace
  2. debug
  3. info
  4. warn
  5. error
  6. fatal

Example: container.logger.debug('log debug message');