Search code examples
herokudiscorddiscord.jsheroku-cli

How to send heroku logs to discord via webhooks?


I saw heroku cli and it's cool to log in real time via -tail But how do I send that real time logging to discord via webhooks (for example curl or node-fetch by cli or coding respectively.)?


Solution

  • Ps: the best way is here, and it works! Module file:

    const {fetch} = require("rovel.js");
    function log(text){
     fetch(process.env.CONSOLE_LOG, {
      method: "POST",
      headers: {
       "Content-Type": "application/json"
      },
      body: JSON.stringify({
       "username": "RDL console.log",
       "content": text
      })
     })
     globalThis.logg(text);
    }
    
    function error(text){
     fetch(process.env.CONSOLE_LOG, {
      method: "POST",
      headers: {
       "Content-Type": "application/json"
      },
      body: JSON.stringify({
       "username": "RDL console.error",
       "content": text
      })
     })
     globalThis.logerr(text);
    }
    
    function warn(text){
     fetch(process.env.CONSOLE_LOG, {
      method: "POST",
      headers: {
       "Content-Type": "application/json"
      },
      body: JSON.stringify({
       "username": "RDL console.warn",
       "content": text
      })
     })
     globalThis.warnn(text);
    }
    module.exports = {log, error, warn};
    

    And import it:

    const loggy = require("@utils/loggy.js");
    globalThis.logg = console.log;
    globalThis.console.log = loggy.log;
    globalThis.logerr = console.error;
    globalThis.console.error = loggy.error;
    globalThis.warnn = console.warn;
    globalThis.console.warn = loggy.warn;
    globalThis.fetch = rovel.fetch;
    

    (rovel.fetch is actually a copy of node fetch.) process.env.CONSOLE_LOG is the discord webhook where you want to log it.