New to CraftNodes? Use code WELCOME10 at checkout for 10% off your first month.

Back to Blog

May 13, 2026

Discord Bot Logging: How to Track Commands and Errors

Implement logging in your Discord bot to track commands, errors, and user actions. Best practices for discord.js and discord.py bot logging.


Why Logging Matters

Without logs, debugging Discord bot issues is nearly impossible. Logging tells you when commands were used, by whom, what errors occurred, and how your bot is performing in production.

Console Logging

The simplest form of logging is console.log() in Node.js or print() in Python. These appear in your Pterodactyl panel console. They are fine for development but not structured enough for production.

Using Winston (Node.js)

const winston = require('winston');

const logger = winston.createLogger({
  level: 'info',
  format: winston.format.combine(
    winston.format.timestamp(),
    winston.format.json()
  ),
  transports: [
    new winston.transports.File({ filename: 'error.log', level: 'error' }),
    new winston.transports.File({ filename: 'combined.log' }),
    new winston.transports.Console()
  ]
});

Discord Channel Logging

Send important events to a private Discord channel. Create a logging function that sends an embed to your log channel whenever a command is used, an error occurs, or a significant event happens.

Error Handling

Always handle unhandledRejection and uncaughtException events in Node.js. Log these errors before the process exits so you know what crashed your bot.


All posts

CraftNodes Blog