当前位置: 首页 > news >正文

【实用工具】使用飞书机器人监控工程日志

1.创建一个飞书群聊,设置-->群机器人-->添加机器人-->自定义机器人-->修改机器人名称-->添加

 2.复制webhook地址

3.编写日志请求代码

import logging
import requests
import json
import os
from datetime import datetime
import time
import subprocess# curl -X POST -H "Content-Type: application/json" \
#     -d '{"msg_type":"text","content":{"text":"request example"}}' \
#     webhook地址def get_local_ip():try:# 执行系统命令获取本地 IP 地址result = subprocess.check_output(['ip', 'addr']).decode('utf-8')# 解析输出,找到本地 IP 地址lines = result.split('\n')for line in lines:if 'inet ' in line and '127.0.0.1' not in line:local_ip = line.strip().split(' ')[1]return local_ip.split('/')[0]  # 返回不带掩码的 IP 地址return Noneexcept Exception as e:print("无法获取本地IP地址:", e)class send_mes:def __init__(self):self.data = {"msg_type": "text","content": {# "text": "pid:%s,ip_addr:%s" % (current_process_id, ip_addr[0])"text": ""}}self.url = "webhook地址"self.headers = {"Content-Type": "application/json"}self.pid = os.getpid()self.ip_addr = get_local_ip()# sef send_message()def send_message(self, data):current_time = datetime.now()# 将当前时间转换为字符串格式current_time_str = current_time.strftime("%Y-%m-%d %H:%M:%S")data_li = [current_time_str, self.ip_addr, self.pid, data]data_li_str = [str(item) for item in data_li]self.log_ = "|".join(data_li_str)self.data["content"]["text"] = self.log_try:response = requests.post(self.url, json=self.data, headers=self.headers)if response.status_code == 200:print("消息发送成功:", response.json())else:print("消息发送失败:", response.text)except Exception as e:print("发送请求时出错:", e)if __name__ == "__main__":#实例化发送信息类send_mes_ = send_mes()#发送消息send_mes_.send_message("这是一条日志消息")

4.测试

日志信息将包括日期、执行程序的进程和ip,最后加上日志信息

  • 将error,info,debug放在三个机器人上,平时可以查看,等到真正使用时,把info和debug界别日志去掉,避免发送日志影响性能。

相关文章:

【实用工具】使用飞书机器人监控工程日志

1.创建一个飞书群聊,设置-->群机器人-->添加机器人-->自定义机器人-->修改机器人名称-->添加 2.复制webhook地址 3.编写日志请求代码 import logging import requests import json import os from datetime import datetime import time import sub…...

NIKKE胜利女神PC怎么设置中文 手把手教你设置中文教程

这个游戏中的妮姬分四个企业,其中朝圣者这个派别的妮姬很少而且不在愿望单理,朝圣者的所有姐姐都很哇塞,红莲更是其中的大姐大。一般想抽朝圣者只能靠歪或者出限定卡池,举个栗子,我入坑的时候 朝圣者 神罚 是限定卡池&…...

【leetcode面试经典150题】2.移除元素(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主,题解使用C语言。(若有使用其他语言的同学也可了解题解思路,本质上语法内容一致&…...

实现几何对象按照一定距离向外缓冲

1、首先&#xff0c;确保你已经引入了Turf.js库。你可以通过在HTML文件中添加以下代码来引入 <script src"https://cdn.jsdelivr.net/npm/turf/turf6.5.0/turf.min.js"></script>2、使用turf.buffer实现几何对象按照设定距离扩充 let originalCoordinat…...

现代深度学习模型和技术

Transformer模型的理解和应用 Transformer模型自2017年由Vaswani等人在论文《Attention is All You Need》中提出以来&#xff0c;已经彻底改变了自然语言处理&#xff08;NLP&#xff09;领域的面貌。Transformer的核心是自注意力&#xff08;Self-Attention&#xff09;机制…...

go的orm框架-Gorm

官网文档 特点 全功能 ORM 关联 (拥有一个&#xff0c;拥有多个&#xff0c;属于&#xff0c;多对多&#xff0c;多态&#xff0c;单表继承) Create&#xff0c;Save&#xff0c;Update&#xff0c;Delete&#xff0c;Find 中钩子方法 支持 Preload、Joins 的预加载 事务&…...

嵌入式开发学习---(部分)数据结构(无代码)

数据结构 为什么学习数据结构&#xff1f; 1&#xff09;c语言告诉如何写程序&#xff0c;数据结构是如何简洁高效的写程序 2&#xff09;遇到一个实际问题&#xff0c;需要写程序去实现相应功能&#xff0c;需要解决那两个方面的问题&#xff1f; 如何表达数据之间的逻辑规律…...

ChatGPT 之联盟营销

原文&#xff1a;ChatGPT for Affiliate Marketing 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第二章 制定转化对话 制定转化对话是每个营销人员和企业所有者都应该掌握的关键技能。它涉及创建和传递引人入胜的信息&#xff0c;吸引您的受众并激励他们采取行动。…...

1.k8s简介

目录 k8s是什么 k8s不是什么 云原生 微服务 整体式架构与微服务架构 微服务的特性 微服务的优势 k8s是什么 Kubernetes 是一个可移植、可扩展的开源平台&#xff0c;用于管理容器化的工作负载和服务&#xff0c;可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快…...

go包下载时报proxyconnect tcp: dial tcp 127.0.0.1:80: connectex错误的解决方案

一大早的GoLand就开始抽风了&#xff0c;好几个文件import都红了&#xff0c;于是我正常操作点击提示的sync&#xff0c;但是却报了一堆错&#xff1a; go: downloading google.golang.org/grpc v1.61.1 go: downloading google.golang.org/genproto v0.0.0-20240228224816-df9…...

Vaadin框架是如何处理前后端交互的?列举几个Vaadin中常用的UI组件,并描述它们的作用。如何使用Vaadin的布局管理器来构建复杂的用户界面?

Vaadin框架是如何处理前后端交互的&#xff1f; Vaadin框架处理前后端交互的方式主要基于服务端渲染和事件驱动的编程模型。以下是具体的处理过程&#xff1a; 服务端渲染&#xff1a;Vaadin应用程序的UI组件是在服务器端创建和渲染的。当用户在浏览器中访问应用程序时&#x…...

动态属性的响应式问题和行内编辑的问题

动态属性的响应式问题 通过点击给目标添加动态数据&#xff0c;该数据不具备响应式特性 如下图&#xff1a; 点击编辑&#xff0c;前面的数据框会变成输入框&#xff0c;点取消会消失 // 获取数据 async getList () {const res await xxxthis.list res.data.rows// 1. 获…...

微信小程序第六次课(模块化和绑定事件)

模块化 1.首先 我们在utils里面创建一个新的js文件 2.新的js文件里面写我们要实现的函数功能 3.把新的函数功能 通过 module.export.对外公开文件名 新文件名 的方式把之前的函数公开到其他他模块 &#xff08;类似于public 让别的模块可以…...

【Unity添加远程桌面】使用Unity账号远程控制N台电脑

设置地址&#xff1a; URDP终极远程桌面&#xff1b;功能强大&#xff0c;足以让开发人员、设计师、建筑师、工程师等等随时随地完成工作或协助别人https://cloud-desktop.u3dcloud.cn/在网站登录自己的Unity 账号上去 下载安装被控端安装 保持登录 3.代码添加当前主机 "…...

maven的settings.xml、pom.xml配置文件

1、配置文件 maven的配置文件主要有 settings.xml 和pom.xml 两个文件。 其中在maven安装目录下的settings.xml&#xff0c;如&#xff1a;D:\Program Files\apache-maven-3.6.3\conf\settings.xml 是全局配置文件 用户目录的.m2子目录下的settings.xml&#xff0c;如&#…...

使用MQTT.fx接入新版ONENet(24.4.8)

新版ONENet使用MQTT.fx 模拟接入 目录 新版ONENet使用MQTT.fx 模拟接入开始前的准备创建产品设备获取关键参数 计算签名使用MQTT.fx连接服务器数据流准备与上传数据流准备数据发送与接收 开始前的准备 创建产品 设备下载Token签名工具生成签名 创建产品设备 根据以下内容填写…...

Selenium 自动化遇见 shadow-root 元素怎么处理?

shadow-root是前端的特殊元素节点&#xff0c;其使用了一个叫做shadowDOM的技术做了封装&#xff0c;shadowDOM的作用可以理解为在默认的DOM结构中又嵌套了一个DOM结构&#xff08;和iframe有点类似&#xff0c;只不过iframe内嵌的是HTML&#xff09;&#xff0c;我们遇见shado…...

软件系统质量属性_2.面向架构评估的质量属性

为了评价一个软件系统&#xff0c;特别是软件系统的架构&#xff0c;需要进行架构评估。在架构评估过程中&#xff0c;评估人员所关注的是系统的质量属性。评估方法所普遍关注的质量属性有&#xff1a;性能、可靠性、可用性、安全性、可修改性、功能性、可变性、互操作性。 1.…...

设计模式:抽象工厂

定义 抽象工厂模式是一种创建型设计模式&#xff0c;它提供了一个接口&#xff0c;用于创建一系列相关或相互依赖的对象&#xff0c;而无需指定它们具体的类。这种模式特别适用于处理产品族&#xff0c;但在不可能修改的情况下扩展产品族是困难的。 应用场景 抽象工厂模式通…...

【环境搭建】ubuntu工作站搭建全流程(显卡4090)

安装ubuntu22.04系统 首先&#xff0c;先压缩windows分区&#xff0c;按住Win X快捷键&#xff0c;选择磁盘管理,压缩分区&#xff0c;压缩出新的分区用于安装ubuntu22.04 windows插入系统盘&#xff0c;点击重启&#xff0c;一直按F12,选择系统盘启动方式语言选择chinese–…...

LeetCode 热题 100(每日两题)-Day2

坚持打卡第二天&#xff01;昨天的哈希表大显神威&#xff0c;今天我们将继续探索哈希集合的妙用&#xff0c;并引入数组操作中极其重要的技巧——双指针&#xff08;快慢指针&#xff09;。一、最长连续序列LeetCode 第 128 题&#xff0c;难度中等。这道题的难点在于题目强制…...

MCP只是过渡,CLI才是AI的原生界面——从飞书、钉钉集体CLI化说起

文章目录一、从"养龙虾"说起&#xff1a;一场返祖式的革命二、MCP&#xff1a;伟大的"USB-C"&#xff0c;但依然是个翻译器三、CLI&#xff1a;AI的母语&#xff0c;不需要翻译四、MCPCLI&#xff1a;过渡方案与终极形态的共生五、对开发者的冷思考&#x…...

DLSS Swapper完整指南:掌握游戏性能优化的终极工具

DLSS Swapper完整指南&#xff1a;掌握游戏性能优化的终极工具 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper DLSS Swapper是一款革命性的游戏性能优化工具&#xff0c;专为现代PC游戏玩家设计。这款开源软件让您能够…...

网页录音录像软件

https://www.apowersoft.cn/free-audio-recorder-online...

Janus-Pro-7B WebUI开发进阶:利用JavaScript打造动态交互界面

Janus-Pro-7B WebUI开发进阶&#xff1a;利用JavaScript打造动态交互界面 1. 引言&#xff1a;从静态展示到动态交互 如果你用过一些大模型的基础Web界面&#xff0c;可能会觉得它们有点“呆”。输入问题&#xff0c;等待&#xff0c;然后一次性看到所有答案。整个过程就像在…...

从T检验到回归:用SPSS搞定你的毕业论文数据分析(保姆级步骤+结果解读)

从T检验到回归&#xff1a;用SPSS搞定你的毕业论文数据分析&#xff08;保姆级步骤结果解读&#xff09; 当你面对堆积如山的问卷数据或实验记录时&#xff0c;是否曾感到无从下手&#xff1f;作为人文社科、经管或心理学领域的研究者&#xff0c;掌握SPSS这一统计利器至关重要…...

Gemma-3-12B-IT WebUI保姆级教程:多模型切换与Gemma-3-27B对比体验

Gemma-3-12B-IT WebUI保姆级教程&#xff1a;多模型切换与Gemma-3-27B对比体验 1. 开篇&#xff1a;为什么你需要一个更聪明的AI助手&#xff1f; 想象一下&#xff0c;你手头有一个能写代码、能解答技术难题、还能陪你聊天的AI助手。它运行在你自己的服务器上&#xff0c;数…...

魔法方法 __init__ 与 __new__ 的区别与使用场景

前言在 Python 中&#xff0c;魔法方法&#xff08;也叫特殊方法&#xff09;以双下划线开头和结尾&#xff0c;例如 __init__、__new__、__str__ 等。它们赋予了类许多“隐形”的能力&#xff0c;让我们能够像操作内置类型一样操作自定义对象。当谈到对象创建时&#xff0c;__…...

MatterGen:深度学习驱动的无机材料设计新范式

MatterGen&#xff1a;深度学习驱动的无机材料设计新范式 【免费下载链接】mattergen Official implementation of MatterGen -- a generative model for inorganic materials design across the periodic table that can be fine-tuned to steer the generation towards a wid…...

【2026年最新600套毕设项目分享】基于springboot+vue的无人机共享管理系统(14299)

有需要的同学&#xff0c;源代码和配套文档领取&#xff0c;加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码&#xff08;前后端源代码SQL脚本&#xff09;配套文档&#xff08;LWPPT开题报告/任务书&#xff09;远程调试控屏包运行一键启动项目&…...