Python工程笔记(1):轨迹与日志

轨迹记录模块(Recorder)

轨迹和日志是定位工程问题的备忘录和总结代码开发项目管理经验的基本素材,是工程交验收资料的重要组成部分

1.1 依赖表

包名含义安装方式
系统包
os
time

1.2 全局变量表

变量名含义初值
log_file日志保存路径./recorder.txt

1.3 函数

1.4 类

类:Recorder
实例化方式不需要入参
属性含义初值
方法主要功能
类方法主要功能
record自定义消息,轨迹记录

1.5 代码与测试用例

# recorder.py
import os
import timelog_file = "./recorder.txt"class Recorder:@classmethoddef record(cls, message: str):global log_fileif not os.path.exists(log_file):with open(log_file, "wt", encoding="gbk") as file:file.write("[{}]: {}\n".format(time.asctime(), message))else:with open(log_file, "at", encoding="gbk") as file:file.write("[{}]: {}\n".format(time.asctime(), message))if __name__ == "__main__":Recorder.record("测试脚本")A = "China No."B = 1Recorder.record("{}{}".format(A, B))

日志分级打印(PrintLog)

1.1 依赖表

包名含义安装方式
系统包
os
time

1.2 全局变量表

变量名含义初值
DEBUGdebug开关True
CODE_LOG_FILE日志保存路径./log.txt

1.3 函数

函数名含义是否接口
LOG_TO_FILE日志核心输出函数
DEBUG_LOGdebug打印
ERROR_LOG错误打印
WARN_LOG告警打印
INFO_LOG通知打印
# logger.py
import os
import time
DEBUG = True
CODE_LOG_FILE = "log.txt"# 日志保存至文件def LOG_TO_FILE(log_info: str, log_level: str, debug_flag=False):global CODE_LOG_FILEif not os.path.exists(CODE_LOG_FILE):with open(CODE_LOG_FILE, "wt", encoding="gbk") as file:file.write("[{} | {:>5}]: {}\n".format(time.asctime(), log_level, log_info))else:with open(CODE_LOG_FILE, "at", encoding="gbk") as file:file.write("[{} | {:>5}]: {}\n".format(time.asctime(), log_level, log_info))if debug_flag:print("[{}] {}".format(log_level, log_info))# 日志是否在终端显示
def DEBUG_LOG(log_info: str):LOG_TO_FILE(log_info, "DEBUG", DEBUG)def ERROR_LOG(log_info: str, log_flag=False):LOG_TO_FILE(log_info, "ERROR", log_flag)def WARN_LOG(log_info: str, log_flag=False):LOG_TO_FILE(log_info, "WARN", log_flag)def INFO_LOG(log_info: str, log_flag=False):LOG_TO_FILE(log_info, "INFO", log_flag)if __name__ == "__main__":DEBUG = FalseDEBUG_LOG("关闭的日志")DEBUG = TrueDEBUG_LOG("开启的日志")ERROR_LOG("错误的打印")INFO_LOG("正确的打印")WARN_LOG("告警的打印")

觉得有帮助就点个赞吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/526546.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python代码优化(1):天气预报获取

天气预报获取模块 基于http://www.weather.com.cn/做了代码优化,每个函数功能更加明确,更加适合单独集成。接口也进行了优化,比网络上博主抄来抄去的源码要好一些。 改进点:获取天气拆成了多个函数,多次保存csv文件不…

proxy_pool开源项目攻克学习

开源项目攻克学习之proxy_pool 1. 学习背景 爬虫线程池,但是网络上付费的又很麻烦,于是在开源网站上找到一个版本进行学习。 https://github.com/jhao104/proxy_pool 本人操作系统deepin,有遇到一些问题,希望可以跟大家分享一…

pip 指定镜像源 指定版本 批量安装

要用 pip 安装指定版本的 Python 包,只需通过 操作符 指定 例如:pip install pycrypto2.6.1 将安装pycrypto2.6.1 版本。 要使用pip 批量安装,需要写requirements.txt文件,一行一个包 numpy matplotlib wxpypip install -r r…

Linux命令行下统计当前文件夹下的文件个数

统计某文件夹下文件的个数 ls -l |grep “^-”|wc -l 统计某文件夹下目录的个数 ls -l |grep “^d”|wc -l 统计文件夹下文件的个数,包括子文件夹里的。 ls -lR|grep “^-”|wc -l 统计文件夹下目录的个数,包括子文件夹里的。 ls -lR|…

proxy_pool开源项目攻克学习2:服务器架设

proxy_pool开源项目攻克学习2:服务器架设 在这个文章proxy_pool开源项目攻克学习中,我们完成了本地的proxy_pool架设。现在我们将他转移到服务器上。 硬件环境准备 腾讯centos服务器。 软件环境准备 redispython3.7proxy_pool开源项目 安装过程 总…

python opencv安装

opencv安装 pip install opencv-python依赖安装 # libglvnd-1:1.3.2-1.tl3.x86_64 # libglvnd-glx-1:1.3.2-1.tl3.x86_64 # libxshmfence-1.3-2.tl3.x86_64 # mesa-libGL-20.3.3-2.tl3.x86_64 # mesa-libglapi-20.3.3-2.tl3.x86_64yum install libGL

nodejs轻量服务器后端

nodejs轻量服务器后端 搭建思路 server.js主函数 mine.js配置文件 index.html 测试网页 目录结构 __./|__ test1|__ index.html|__ mine.js|__ server.jsserver.js文件 var PORT 8080; //端口 var DIR test1; //用于存放html的目录var http require(http);…

[Leetcode713]乘积小于 K 的子数组

公司里偷偷刷题记录 做一下笔记 求解子数组方式: 两种方案: 通用方案就是前缀和查找 另一种是递增序列可用的滑动窗口 有些题目如果给出来的数字有正,负。那么一定就要转化成前缀和。 如果是全正数组,可以采用前缀和二分查找的…

[Leetcode15]三数之和

重刷一遍相向双指针 题目 leetcode15 https://leetcode.cn/problems/3sum/ 类似的题目还有leetcode16 leetcode16 解答思路 关键点 快排 双指针 1: 快速排序,之后使用双指针遍历对应的位置,求解 2: 主要是在确定了第一个值…

光学元件生产工艺流程

光学元件生产工艺流程 选胚料 – 开料(初步切割)- 清洗 - 上盘(批处理) – 切割 – 粗磨整平 – 粗检 – 细磨上盘 – 细磨 – 高速抛光 – 低速抛光 – 光胶 – 成片 – 上盘 – 成品切割 – 清洗 – 包装 粗磨阶段 选胚料: 选择光学元件的原材料,如K9,BK7玻璃等 开…

[leetcode933]最近的请求次数

每日偷偷刷题933和队列有关 思路 每来一次ping就记录时间,并返回3000s内ping的次数,本题数据量很大,正向暴力肯定是不行的。 初步思路:反向暴力,不删列表数据。从ping的下标往前推,并统计3000s的数据。 …

[leetcode]5. 最长回文子串 647. 回文子串

昨日刷题,今日补发 解题思路 中间扩展,遍历数组,以每一项为中心,或以每两项为中心,向外拓展。 学习一下pair概念,还有string的substr的用法 以下是leetcode第五题 C做法 class Solution { public:pair…

牛客网选择题刷题记录之C++

数据结构 顺序表 在一个长度为n的顺序表的任意位置插入一个新元素的渐进时间复杂度为() A. O(n) B. O(n/2) C. O(1) D. O(n的平方) 答案: A 解析…

[剑指offer 24] 反转链表

题目复习反转链表 字节面试的一道面试考题。属于简单题,毕竟复杂的面试也不好判题对吧(狗头) 思路 思路不难,首先我们观察链表,一般链表指的都是单向链表 struct ListNode {int val;struct ListNode *next; };那么…

[剑指offer 27][LeetCode234] 回文链表

偷偷刷题记录 回文链表 思路 思路1. 处理链表最粗暴的方式就是拷贝到数组中。考试时候也是,只要不会超内存,完全这么办 思路2. 快慢指针。因为我们判断是不是回文链表,回文的特性就是以中为界,两头对称。由于我们不能像使用数组…

牛客网选择题刷题记录之Linux系统

linux运维 linux指令 下面有关linux查看系统负载的命令,说法错误的是? A. uptime命令主要用于获取主机运行时间和查询linux系统负载等信息 B. vmstat命令可以查看查看cpu负载 C. sar -n命令可以查看网络接口信息 D. free命令可以查看磁盘负载情况 答案&…

Keil_uvision_4基本使用教程

前言: keil uvision 5 和 4 使用方式差不多 Keil_uvision_4基本使用教程 Keil C51 V9.00 即09年发布的最新版本uVision 4,版本外观改变比较大 可以使用以前的注册文件如果全新安装,在VISTA或者WIN 7系统下…

MySQL语法看这一篇就够啦

MySQL语法看这一篇就够啦1. MySQL介绍与登录1.1 MySQL介绍1.2 Mariadb安装与启动1.2.1 在centos7环境下安装启动登录数据库操作部分增删改查:增 CREATE DATABASE增删改查:删 DROP增删改查:查找数据库 SHOW DATABASE使用数据库:use…

Python数据库:嵌入式MySQL

Python数据库:嵌入式MySQLPython访问MySQL的库函数PyMySQL安装PyMySQL快速上手以及代码上下文PyMySQL常见语法1. 导包2.连接数据库 connect3. 创建访问对象 cursor4. 下达命令 cursor.execute5. 接收结果 cursor.fetch*6.事务的用法7. 关闭mysql链接 closePython访问…

部门名称部门结构叠用_金属结构分公司三部门联合开展工会小组活动

为丰富职工的业余生活,营造轻松欢乐的氛围,增强部门间交流沟通,舒缓职工工作压力,在金属结构分公司工会的支持下,9月12日,分公司工程管理部、安全监管部和综合办公室联合开展工会小组活动,分公司…