For Developers
Moving Parts
Logging

Logging

Introduction

In Botpress Integrations, logging is an essential functionality used for error tracing, tracking down issues, debugging, and keeping track of the bot's actions. The logger object provided by Botpress offers this logging functionality, allowing you to log different severity levels of messages.

The logger is designed for developers or technical personnel dealing with bot integrations in Botpress. It has four methods, namely info, warn, error, and debug, each catering to different levels of logging severity.

Using Logger

The integration logger is readily available in the properties received from the integration function, the same place where you have the ctx object.

({ logger, ctx }) => {
  // ...
}

Example: Calling it in the Channel Integration Here is an example of using the logger within a channel integration:

text: async ({ logger, payload, ctx, conversation, ack }) => {
  logger.forBot().debug(ctx);
  logger.forBot().debug(payload);
  logger.forBot().debug(conversation);
}

In the above example, logger.forBot().debug() is used to log the ctx, payload, and conversation objects. This can be particularly helpful when debugging your bot's interactions within this channel.

logger Object

forBot Function

This function returns an object that provides four methods for logging: info, warn, error, and debug. The intended use for this function is to log messages that the bot owner would want to see. For example, these messages could be related to actions performed by the bot, errors that occurred, or any information that might be useful for monitoring or debugging.

logger.forBot()

Info Method

Logs an informational message. This is useful for general information that you would like to log about the operations of your bot.

logger.forBot().info(message, ...optionalParams)

Warn Method

Logs a warning message. Use this method to log anything that might potentially cause a problem in your bot. This might include deprecations, bad practices, or approaching quota limits.

logger.forBot().warn(message, ...optionalParams)

Error Method

Logs an error message. When your bot encounters a problem that prevents it from operating normally, log it using this method. This will make it easier for you to find and fix problems in your bot.

logger.forBot().error(message, ...optionalParams)

Debug Method

Logs a debugging message. When you're trying to figure out why your bot is behaving in a certain way, or you're trying to find a bug, this method allows you to log additional details about the operations of your bot.

logger.forBot().debug(message, ...optionalParams)

Extra Data

Each of these methods optionally accepts multiple parameters. The first parameter is a message to log. Subsequent parameters are optional, and will be logged alongside the message. For example:

logger.forBot().info('This is an informational message', { data: 'Some relevant data' })

This will log the message "This is an informational message" along with the additional data object { data: 'Some relevant data' }.