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.

import { container } from '@sapphire/framework';

export class MyAwesomeService {
public printAwesomeLog() {
container.logger.info('log message');
}
}

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

// ping command

import { Command } from '@sapphire/framework';
import type { Message } from 'discord.js';

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

public async messageRun(message: Message) {
this.container.logger.warn('warning message');
}
}

Types of logs

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

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