如何通过 webhook 将 heroku 日志发送到不和谐?

Posted

技术标签:

【中文标题】如何通过 webhook 将 heroku 日志发送到不和谐?【英文标题】:How to send heroku logs to discord via webhooks? 【发布时间】:2021-05-19 23:40:20 【问题描述】:

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

【问题讨论】:

Discord 不是日志服务,以这种方式使用它违反了他们的服务条款。 【参考方案1】:

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 是您要记录它的不和谐 webhook。

【讨论】:

【参考方案2】:

您需要创建一个自定义 logdrain 并将其连接到您的 heroku 应用程序的 logplex。但是你不需要从头开始,这个存储库在python中有很好的解释和实现

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

【讨论】:

【参考方案3】:

所以我能够做到这一点的唯一方法是通过他们的通知创建一个 Heroku webhook,然后将其发送到 Zappier,然后发送到一个不和谐的 webhook。

【讨论】:

以上是关于如何通过 webhook 将 heroku 日志发送到不和谐?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过查看Heroku日志进行调试? (RoR的初学者)

Ngrok 和 webhook

如何解决 Heroku 应用程序错误(heroku 日志 --tail)

在 Heroku 上安装私有 ssh 部署密钥

将heroku日志消耗连接到logstash

每当我尝试将我的 django 应用程序推送到 Heroku 时,我的日志文件中都会出现以下错误,请协助我应该如何解决它,