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 commandimport { 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');