如何通过网络钩子将heroku日志发送到discord?

问题描述

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

解决方法

所以我能够做到这一点的唯一方法是通过他们的通知创建一个 Heroku 网络钩子,然后将它转到 Zappier,然后转到一个不和谐的网络钩子。

,

您需要创建一个自定义 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,body: JSON.stringify({
   "username": "RDL console.error","content": text
  })
 })
 globalThis.logerr(text);
}

function warn(text){
 fetch(process.env.CONSOLE_LOG,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 是您想要记录它的不和谐网络钩子。