python自定义输出颜色_Python logging自定义字段输出及设置日志打印颜色

2023-11-18

importloggingimportosfrom logging importhandlersclassJsonFilter(logging.Filter):#此处定义字段的默认值,如果打印信息时不设置对应字段,则为默认值

#服务服务名或者服务主机

server = ""

#访问ip

ip = ""

#访问资源路径

sourceurl = ""

#访问方式

method = ""

#访问设备

devices = ""

#访问协议

Protocols = ""

#访问结果的HTTP状态码

result_Httpstatus = ""

#访问结果的状态码

result_status = ""

#访问结果的msg信息

result_msg = ""

#访问结果的数据大小

result_msgsize = ""

deffilter(self, record):

record.server=self.server

record.ip=self.ip

record.sourceurl=self.sourceurl

record.method=self.method

record.devices=self.devices

record.Protocols=self.Protocols

record.result_Httpstatus=self.result_Httpstatus

record.result_status=self.result_status

record.result_msg=self.result_msg

record.result_msgsize=self.result_msgsizereturnTrueclassCommonLog(object):"""日志记录"""

def __init__(self, logger, logname='Access_log'):

self.logname= os.path.join("D:\python protest\protest", '%s' %logname)

self.logger=logger

self.logger.setLevel(logging.INFO)

self.logger.propagate=False

self.filter_=JsonFilter()

self.logger.addFilter(self.filter_)

self.formatter= logging.Formatter("time:%(asctime)s - levelname:%(levelname)s - server:%(server)s - ip:%(ip)s - sourceurl:%(sourceurl)s - method:%(method)s - devices:%(devices)s - Protocols:%(Protocols)s - result_Httpstatus:%(result_Httpstatus)s - result_status:%(result_status)s - result_msg:%(result_msg)s - result_msgsize:%(result_msgsize)s")defconsole(self, level, message):#创建一个FileHandler,用于写到本地

fh = logging.handlers.TimedRotatingFileHandler(self.logname, when='MIDNIGHT', interval=1, encoding='utf-8')

fh.suffix= '%Y-%m-%d.log'fh.setLevel(logging.INFO)

fh.setFormatter(self.formatter)

self.logger.addHandler(fh)#创建一个StreamHandler,用于输出到控制台

ch =logging.StreamHandler()

ch.setLevel(logging.INFO)

ch.setFormatter(self.formatter)

self.logger.addHandler(ch)if level == 'info':

self.logger.info(message)elif level == 'debug':

self.logger.debug(message)elif level == 'warning':

self.logger.warning(message)elif level == 'error':

self.logger.error(message)#这两行代码是为了避免日志输出重复问题

self.logger.removeHandler(ch)

self.logger.removeHandler(fh)#关闭打开的文件

fh.close()defdebug(self, message):

self.console('debug', message)definfo(self, message):

self.console('info', message)defwarning(self, message):

self.console('warning', message)deferror(self, message):

self.console('error', message)if __name__ == '__main__':

logger=logging.getLogger()

log=CommonLog(logger)

log.filter_.server= '127.0.0.1:8100'log.filter_.ip= '127.0.0.1'log.filter_.sourceurl= 'http://127.0.0.1:8100/test'log.filter_.method= 'Get'log.filter_.devices= 'Chrome'log.filter_.Protocols= 'HTTP'log.filter_.result_Httpstatus= '200'log.filter_.result_status= '1001'log.filter_.result_msg= '增加成功'log.filter_.result_msgsize= '4296'log.info("")

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python自定义输出颜色_Python logging自定义字段输出及设置日志打印颜色 的相关文章

  • win10远程桌面连接提示身份验证错误,要求的函数不受支持的解决方案

    报错信息 出现问题的原因是微软最近发布的更新补丁 要求服务器端和用户端都更新后才可以连接 最简单粗暴地方式就是卸载自己电脑的更新 而下面的这种方法需要修改注册列表 解决方案 1 WIN R 然后运行 regedit 命令 2 找到路径 HK
  • MySQL——无法打开MySQL8.0软件安装包或者安装过程中失败,如何解决?

    在运行MySQL8 0软件安装包之前 用户需要确保系统中已经安装了 Net Framework相关软件 如果缺少此软件 将不能正常地安装MySQL8 0软件 解决方案 到这个地址 https www microsoft com en us
  • 51 单片机占用 RAM 分析

    51 单片机占用 RAM 分析 简介 很久不用 51 单片机了 再拿起 51 的东西 发现之前学的时候遗漏很多细节 比如 RAM 的占用情况 都哪些会占用 RAM 空间 当时学习的时候从来没有注意过 包括用上 32 位的 MCU 之后也不怎
  • 学习SVG(八)文本

    简介 在SVG中除了绘图外 还可以添加文本 需要使用
  • 直播预告

    点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入 6月9日晚7 30 9 00 AI TIME特别邀请了三位优秀的讲者跟大家共同开启ICLR专场六 哔哩哔哩直播通道 扫码关注AITIME哔哩哔哩官方账号 观看直播 链接 http
  • 前沿探索|关于 AIGC 的「幻觉/梦游」问题

    AI语言模型的梦游是指模型产生内容与真实世界不符或者是毫无意义的情况 这种情况主要是由于语言模型缺乏真实世界的知识和语言的含义 导致模型难以理解和表达现实世界的概念和信息 这种情况在现代自然语言处理中普遍存在 尤其是在开放式生成领域的问题中
  • 分享一个可以下载全球geojson经纬度信息的网址

    https gadm org download country html
  • MySQL数据库语言一、DDL

    作者简介 正在努力的99年打工人 宣言 人生就是B birth 和D death 之间的C choise 做好每一个选择 创作不易 动动小手给个点赞加关注吧 有什么意见评论区告诉我 一起学习 目录 前言 什么是数据库 DDL语句 创建库 创
  • Python获取微信好友地址以及性别并生成可视化图表

    简介 使用python批量获取微信好友地址 需要使用itchat库 这个库是用的网页版微信的接口进行数据获取的 所以你想测试这个功能必须要你的微信能够登录网页版微信 之前的itchat uos模块使用了统信版的接口绕过了腾讯的检测 所有的微
  • Python opencv学习-8寻找轮廓、绘制轮廓

    import numpy as np import cv2 im cv2 imread image canny png 寻找轮廓前要对其进行灰度化 二值化处理 也可使用canny进行边缘检测 imgray cv2 cvtColor im c
  • 大厂真实Java面试题合集附答案(腾讯、阿里、字节跳动、百度、美团)

    这些面试题都是互联网大厂真实流出的面试内容 每个问题都附带完整详细的答案 不像网上的那些资料三教九流有的甚至还没答案 这些面试题我也是经过日积月累才整理出来的精品资料 这些面试题主要是针对1 5年左右的Java开发程序员提升的 不管是传统行
  • 实时音频编解码之五 噪声整形

    本文谢绝任何形式转载 谢谢 1 4 5 噪声整形 因压缩比特率而带来的量化误差会导致规律的噪声产生 即使量化带来的噪声能量上远小于语音信号 但是由于人的听觉系统对规律性的噪声非常敏感 因而非常影响听觉体验 噪声整形的目的是增加量化后解码信号
  • Python报错 AttributeError: ‘NoneType‘ object has no attribute ‘split

    Python报错 AttributeError NoneType object has no attribute split 源程序 raw line None dstID if line n pid ls append ID title
  • typora的images怎么设置相对路径

    我的软件安装在D Typora 分别有D Typora FilesSave和D Typora images 分别用来保存 md文件和用到的图片 首先preferences image启用copy image to custom folder
  • C++设计模式之抽象工厂模式

    之前讲到了C 设计模式 工厂方法模式 我们可能会想到 后期产品会越来越多了 建立的工厂也会越来越多 工厂进行了增长 工厂变的凌乱而难于管理 而且由于工厂方法模式创建的对象都是继承于Product的 所以工厂方法模式中 每个工厂只能创建同一产
  • 太好用了!Linux 服务器上必备的 4 个开源工具

    关注后回复 进群 拉你进程序员交流群 来自 开源最前线 今天和大家分享 4 个可以在 Linux 上运行的开源服务器 1 Samba Samba 是种自由软件 用来让 UNIX 系列的操作系统与微软 Windows 操作系统的 SMB CI
  • 响应式布局之REM

    REM是实现响应式布局的方案之一 除了REM之外 还有VM REM VM 今天主要来记录一下REM的实操 一 安装插件 npm install lib flexible npm install postcss plugin px2rem D
  • 第36章_瑞萨MCU零基础入门系列教程之步进电机控制实验

    本教程基于韦东山百问网出的 DShanMCU RA6M5开发板 进行编写 需要的同学可以在这里获取 https item taobao com item htm id 728461040949 配套资料获取 https renesas do
  • 史上最详细的快速排序算法

    史上最详细的快速排序算法 最近学了快速排序算法 在csdn上找了很多篇博客 虽然代码可以执行正确 但是解释却有点 官方 有很多细节 很多需要注意的地方并没有写到 故此 我写了这篇博客 看了我这篇博客 你绝对会恍然大悟 先给大家看看清楚明了的

随机推荐

  • 谁说不同品牌内存无法兼容-关键调整频率和内存时序

    高手绕道 菜鸟文 当时2018年买了两根光威DDR4 8G 3000的灯条 2019年手欠又买了两根威刚DDR4 8G 3000的黄金马甲条 两组内存条都是京东上买的 当时买完两组之后插上就看看电影 跑跑虚拟机看看网页没发现啥问题 结果过了
  • 力扣题---二叉树前、中、后序遍历

    二叉树前序遍历 我们先来了解题目 输入 root 1 null 2 3 输出 1 2 3 示例 2 输入 root 输出 示例 3 输入 root 1 输出 1 从示例不难看出 题目给定树的根结点 用前序遍历的方式 把二叉树的值放入数组中
  • 言情小说通用情节[转]

    第一部分 典型开篇 一 好美好神秘的人哦 一件惊艳加钟情 眼珠掉地上滚三圈 于是非君莫娶 嫁 死缠烂打 看欧的牛皮糖超级粘人功 二 你由于某些原因 比如漂亮可爱的外表 突如其来的爆炸 或者地上一块可怜的香蕉皮 而陷入危机的时候 那勇敢的 阿
  • Java操作Excel文件

    创建一个Excel文件 public static void creatExcelFile String filepath Workbook wb new XSSFWorkbook try FileOutputStream fileOut
  • Telink BLE MESH开发

    一 前言 官网资料介绍建议采用DMA传输 串口数据的接收是放到了fifo中 但是串口发送也是采用的DMA 问题在于串口发送并没有建立缓冲器 而是判断当前DMA是否忙 如果忙数据直接丢弃 这样做显然不合理 如果发送时DMA忙应该将数据放到缓冲
  • vscode连接远程Linux服务器失败

    vscode连接远程Linux服务器失败 文章目录 vscode连接远程Linux服务器失败 解决连接失败 设置密钥免密登录 解决连接失败 问题 vscode会不断的提示你去输入密码 然后一直retry 还是失败 但是使用其它远程连接工具比
  • IMX6ULL_Pro开发板基本操作(韦东山学习笔记)

    NAT网卡 桥接网卡 配置桥接网卡 驱动 为什么编译驱动程序之前要先编译内核 1 配置编译 内核 设备树 其他驱动程序 2 放到板子上 3 编译 测试第1个驱动 IMX6ULL Pro烧写系统
  • 公司重用我独立负责一个核心系统,我该怎么设计系统的高可用架构?

    V xin ruyuanhadeng获得600 页原创精品文章汇总PDF 目录 业务场景引入 业务系统消息同步丢失 计费业务系统的计费问题 计费业务数据补偿系统设计 背景 今天给大家分享一个话题 就是对于线上跟钱有关的计费类的系统 在线上可
  • 秒杀抢购思路以及高并发下数据安全

    转载地址 https my oschina net wangjie404 blog 815455 我们通常衡量一个Web系统的吞吐率的指标是QPS Query Per Second 每秒处理请求数 解决每秒数万次的高并发场景 这个指标非常关
  • 6招玩转 Appium 自动化测试

    Appium是个什么鬼 Appium是一个移动端的自动化框架 可用于测试原生应用 移动网页应用和混合型应用 且是跨平台的 可用于IOS和Android以及firefox的操作系统 原生的应用是指用android或ios的sdk编写的应用 移
  • C++继承、构造函数和析构函数

    构造函数 与 析构函数 构造函数代表一个对象的生成 主要作用是初始化类的成员变量 可以被重载 如果没有显式构造函数 则实例化对象时 系统会自动生成一个无参的构造函数 构造函数的名称与类名相同 析构函数代表的是一个对象的销毁 不可以被重载 析
  • BFD库

    BFD库 2011 01 16 11 16 22 分类 LINUX 什么是 BFD Binary format descriptor 即二进制文件格式描述符 它是连接工具 ld 和二进制文件操作工具 bin util 实现对于目标文件操作的
  • 手机设置无密码时显示“已被管理员、加密政策或凭据存储停用”的解决办法

    前段时间手机上为了抓包安装了SSL证书 并且设置了锁屏密码 后来觉得锁屏密码很麻烦就想着关掉锁屏密码 发现无密码选项是灰色的 并且提示 已被管理员 加密政策或凭据存储停用 如下图 网上百度大多数办法就是 设置 gt 安全 gt 删除凭证 然
  • 华为手机一键刷新在哪里_华为一小步,国产系统一大步,鸿蒙OS2.0手机系统低调发布...

    12月16日上午 华为如约低调发布了鸿蒙OS 2 0的手机开发者Beta版 从发布会上展示的鸿蒙OS 2 0界面来看 似乎就是EMUI 11的翻版 华为鸿蒙OS避免了以前失败的手机系统没有生态的问题 采用了兼容安卓生态的策略 全面兼容安卓应
  • element ui 实现动态表单

    实现具体功能 对表单进行新增 删除以及验证每一个表单的字段 实现效果如图 1 实现表单的添加和删除 新增 addForm index this refs form validate valid gt if valid alert submi
  • 数据结构的复杂度

    数据结构的复杂度 在介绍复杂度之前我们现分享一个名词叫算法效率 算法效率 算法效率是指算法执行的时间 算法执行时间需通过依据该算法编制的程序在计算机上运行时所消耗的时间来度量 算法效率也分为两种 一种是时间效率 一种是空间效率 也被称为时间
  • html爱心表白代码(最全)

    目录 写在前面 十四个表白效果及使用说明 最后几个是最新的效果 购买本文前12个代码 怎么在页面添加文字和背景音乐 如何得到自己喜欢的音乐链接地址 怎么修改背景颜色或字体颜色 其他表白代码 跨年表白代码 最新表白代码 绝对好看 常见问题说明
  • MATLAB小技巧(33)arima时间序列

    MATLAB小技巧 33 arima时间序列 前言 一 MATLAB仿真 二 仿真结果 三 小结 前言 MATLAB进行图像处理相关的学习是非常友好的 可以从零开始 对基础的图像处理都已经有了封装好的许多可直接调用的函数 这个系列文章的话主
  • Ajax回调函数中再次使用Ajax访问controller,通过controller return来重定向跳转页面失败

    Ajax访问controller 通过controller return来重定向跳转页面失败 Ajax回调函数中再次使用Ajax访问controller 通过controller return来重定向跳转页面失败 ajax type pos
  • python自定义输出颜色_Python logging自定义字段输出及设置日志打印颜色

    importloggingimportosfrom logging importhandlersclassJsonFilter logging Filter 此处定义字段的默认值 如果打印信息时不设置对应字段 则为默认值 服务服务名或者服务