如何通过 webhooks 将 heroku 日志发送到 discord?

How to send heroku logs to discord via webhooks?

我看到了heroku cli,通过-tail实时登录很酷 但是我如何通过 webhook 将实时日志记录发送到 discord(例如分别通过 cli 或编码进行 curl 或 node-fetch。)?

所以我能够做到这一点的唯一方法是通过他们的通知创建一个 Heroku webhook,然后让它转到 Zappier,然后转到一个 discord webhook。

您需要创建自定义 logdrain 并将其连接到您的 heroku 应用程序的 logplex。但是您不需要从头开始,这个存储库在 python

中有很好的解释和实现

https://github.com/abhi887/heroku2discord-logdrain

Ps: 最好的方法在这里,而且有效! 模块文件:

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};

并导入它:

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其实就是node fetch的复制。) process.env.CONSOLE_LOG 是您要记录的 discord webhook。