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

python日志管理配置

日志基础配置文件

日志回转查看:参考:https://blog.csdn.net/B11050729/article/details/132353220

项目使用注解实现

"""
settings.py logging配置
"""
import osroot_dir = os.path.normpath(os.path.join(os.path.abspath(__file__),os.pardir,os.pardir
))
standard_format = '[%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name)s][%(filename)s:%(lineno)d]' \'[%(levelname)s][%(message)s]'simple_format = '[%(levelname)s][%(asctime)s][%(filename)s:%(lineno)d]%(message)s'test_format = '%(asctime)s] %(message)s'# 3、日志配置字典
LOGGING_DIC = {'version': 1,'disable_existing_loggers': False,# 设置日志输出格式'formatters': {'standard': {'format': standard_format},'simple': {'format': simple_format},'test': {'format': test_format},},'filters': {},# 日志的接收者'handlers': {'console': {'level': 'DEBUG','class': 'logging.StreamHandler',  # 打印到屏幕'formatter': 'simple'},'info': {'level': 'INFO','class': 'logging.handlers.RotatingFileHandler',  # 保存到文件,日志轮转'formatter': 'standard','filename': root_dir + '/log/info.log',  # 日志文件'maxBytes': 1024*1024*500,  # 每个日志文件的大小 500M'backupCount': 3, # 轮转的数量是3'mode': 'a', # a 追加,覆盖'encoding': 'utf-8',  # 日志文件的编码,再也不用担心中文log乱码了},'debug': {'level': 'DEBUG','class': 'logging.handlers.RotatingFileHandler',  # 保存到文件,日志轮转'formatter': 'standard','filename': root_dir + '/log/debug.log',  # 日志文件'maxBytes': 1024*1024*500,  # 每个日志文件的大小 500M'backupCount': 3, # 轮转的数量是3'mode': 'a', # a 追加,覆盖'encoding': 'utf-8',  # 日志文件的编码,再也不用担心中文log乱码了},'error': {'level': 'ERROR','class': 'logging.handlers.RotatingFileHandler',  # 保存到文件,日志轮转'formatter': 'standard','filename': root_dir + '/log/error.log',  # 日志文件'maxBytes': 1024*1024*500,  # 每个日志文件的大小 500M'backupCount': 3, # 轮转的数量是3'mode': 'a', # a 追加,覆盖'encoding': 'utf-8',  # 日志文件的编码,再也不用担心中文log乱码了}},# 日志的生产者'loggers': {'console': {'handlers': ['console'],'level': 'DEBUG', # loggers(第一层日志级别关限制)--->handlers(第二层日志级别关卡限制)'propagate': False,  # 默认为True,向上(更高level的logger)传递,通常设置为False即可,否则会一份日志向上层层传递},'info': {'handlers': ['console', 'info'],'level': 'INFO','propagate': False,},'debug': {'handlers': ['console', 'debug'],'level': 'DEBUG','propagate': False,},'error': {'handlers': ['error'],'level': 'ERROR','propagate': False,},},
}
"""
log.py 装饰器封装
"""
import conf.settings as settings
from logging import config, getLogger
config.dictConfig(settings.LOGGING_DIC)def log(level = "console"):def outer(func):def wrapper(*args, **kwargs):logger = getLogger(level)res = Nonetry:res = func(*args, **kwargs)except Exception as e:logger.exception(e)return resreturn wrapperreturn outer
"""
test.py main方法测试
"""
import log# @log() 默认控制台打印
@log("error") # error.log日志打印
def func():if None > 1:print("123")if __name__ == "__main__":func()

相关文章:

python日志管理配置

日志基础配置文件 日志回转查看:参考:https://blog.csdn.net/B11050729/article/details/132353220 项目使用注解实现 """ settings.py logging配置 """ import osroot_dir os.path.normpath(os.path.join(os.path.ab…...

2024.1.28力扣每日一题——水壶问题

2024.1.28 题目来源我的题解方法一 深度搜索(DFS)/广度搜索(BFS)方法二 数学 题目来源 力扣每日一题;题序:365 我的题解 方法一 深度搜索(DFS)/广度搜索(BFS&#xff…...

orin nx 安装paddlespeech记录

nx配置: 模块 版本说明 CPU 8核 内存 16G Cuda版本 11.4 Opencv版本 4.5.4 Tensorrt版本 5.1 Cudnn版本 8.6.0.166 Deepstream版本 6.2 Python版本 3.8 算力 100T 安装paddlepaddle: 去飞桨官网下载jetpack版本的:下…...

系统架构设计师-21年-上午答案

系统架构设计师-21年-上午答案 更多软考资料 https://ruankao.blog.csdn.net/ 1 ~ 10 1 前趋图(Precedence Graph)是一个有向无环图,记为:→{(Pi,Pj)|Pi must complete before Pj may strat},假设系统中进程P{P1,P2,P3&#xf…...

外包干了10个月,技术退步明显...

先说一下自己的情况,大专生,18年通过校招进入武汉某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了四年的功能测…...

树莓派Pico入门

文章目录 1. Pico概述1.1 微处理器1.2 GPIO引脚1.3 MicroPython优点 2. 硬件准备2.1 购买清单2.2 软件需求 3. 安装MicroPython3.1下载固件3.2把固件安装到硬件里3.3补充 4. 第一个程序5. 验证运行效果6. 扩展应用 1. Pico概述 1.1 微处理器 ARM Cortex-M0 (频率 133MHz) 1.…...

yolov8使用旋转框自己做数据集检测

主要在数据集制作,训练的步骤和目标检测是一样的 1.数据集标注主要使用rolabelimg工具,这个工具不能在线安装 得下载源代码 然后运行 标注好数据保存会是一个xml文件 2.把xml文件转换成dota的xml文件,然后把dota的xml文件转换成dota的txt文件…...

docker重建镜像

DockerFile如下: FROM k8s-registry.qhtx.local/base/centos7-jdk8-haitong0704RUN yum -y update && yum install -y python3-devel && yum install -y python36 RUN mv /usr/bin/python /usr/bin/python_old RUN ln -s /usr/bin/python3 /usr/bi…...

【Linux】vim的基本操作与配置(上)

Hello everybody!今天我们要进入vim的讲解了。学会了vim,咱们就可以在Linux系统上做一些简单的编程啦! 那么废话不多说,咱们直接进入正题! 1.初识vim vim是一款多模式的文本编辑器,可以对一个文件进行编辑操作。 它一共有三个模…...

幻兽帕鲁怎么样?好玩? Mac版的玩《幻兽帕鲁》也很简单,只需三个步骤

幻兽帕鲁怎么样 幻兽帕鲁是一款集合了多种游戏元素的游戏,它巧妙地融合了《方舟:生存进化》的野外生存挑战、《荒野之息》的开放世界探索、《魔兽世界》的多元角色互动以及宝可梦的精灵捕捉与培养等经典游戏元素。游戏的核心系统是「帕鲁」捕获,你可以让…...

002集——统一码(Unicode)及ASCII码详解

统一码(Unicode),它也叫万国码、单一码,是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以…...

下载、安装Jenkins

进入官网 下载Jenkins https://www.jenkins.io 直接点击Download 一般是下长期支持版 因为它是java写的,你要运行它(Jenkins.war)肯定要有java环境 有两种方式去运行它,一种是下载Tomcat(是很经典的java容器或者jav…...

python flask 魔术方法

魔术方法作用_init_对象的初始化方法_class_返回对象所属的类_module_返回类所在的模块_mro_返回类的调用顺序,可以找到其父类(用于找父类)_base_获取类的直接父类(用于找父类)_bases_获取父类的元组,按它们…...

2024清洁能源、环境与智慧城市国际研讨会(ISCEESC2024)

2024清洁能源、环境与智慧城市国际研讨会(ISCEESC2024) 会议简介 2024年清洁能源、环境与智慧城市国际研讨会(ISCEESC2024)将在中国丽江举行。本次会议主要围绕清洁能源、环境和智慧城市等研究领域,旨在为该研究领域的专家学者提供一个国际…...

Postgres与DynamoDB:选择哪个数据库

启动新项目时需要做出的决定之一是使用哪个数据库。如果您使用的是Django这样的包含电池的框架,那么没有理由再三考虑。选择一个受支持的数据库引擎,就可以了。另一方面,如果你使用像FastAPI或Flask这样的微框架,你需要自己做出这…...

【ELK】logstash快速入门

1.概述 1.1.什么是logstash? 之前我们聊了es,并且用docker搭建了一个eskibana的环境。es目前最普遍的用法是用来存储日志的,然后结合kibana对日志做一些可视化的工作。既然要收集日志,就面临着一个问题: 各个系统的…...

SQL sever2008中创建用户并赋权

一、创建数据库dream CREATE DATABASE dream; 二、创建登录用户XZS 法一:使用SSMS创建 通过查询 sys.syslogins 系统视图来确定当前登录是否具有系统管理员权限。执行以下查询语句: SELECT name, isntname FROM sys.syslogins WHERE sysadmin 1;选…...

SpringBoot2-Jwt

1.官网 jwt.io/libraries 2.选jose4j pom <dependency><groupId>org.bitbucket.b_c</groupId><artifactId>jose4j</artifactId><version>0.9.4</version> </dependency> 3.创建jwt工具 public class JwtUtil {private stat…...

2、安全开发-Python-Socket编程端口探针域名爆破反弹Shell编码免杀

用途&#xff1a;个人学习笔记&#xff0c;欢迎指正&#xff01; 目录 主要内容&#xff1a; 一、端口扫描(未开防火墙情况) 1、Python关键代码: 2、完整代码&#xff1a;多线程配合Queue进行全端口扫描 二、子域名扫描 三、客户端&#xff0c;服务端Socket编程通信cmd命…...

Python 套接字详解:与网络通信的温柔邂逅

网络世界&#xff0c;犹如一片无垠的海洋&#xff0c;充满了无限的可能性和无尽的探索。而在这个浩瀚的网络宇宙中&#xff0c;Python 语言以其简洁优雅、功能丰富而备受青睐。在 Python 的世界里&#xff0c;有一个神奇的工具&#xff0c;它就像是一座桥梁&#xff0c;将不同的…...

【LeetCode刷题日记】222.极速计算完全二叉树节点数:O(log²n)算法揭秘

&#x1f525;个人主页&#xff1a;北极的代码&#xff08;欢迎来访&#xff09; &#x1f3ac;作者简介&#xff1a;java后端学习者 ❄️个人专栏&#xff1a;苍穹外卖日记&#xff0c;SSM框架深入&#xff0c;JavaWeb ✨命运的结局尽可永在&#xff0c;不屈的挑战却不可须臾或…...

保姆级教程:用ISO镜像给Vcenter 6.7 U3e无损升级到7.0(附每一步截图和注意事项)

从vCenter 6.7 U3e到7.0的无损升级实战指南 在虚拟化运维领域&#xff0c;vCenter的版本迭代往往意味着性能提升和功能增强。对于仍在使用6.7版本的管理员而言&#xff0c;升级到7.0不仅能获得更高效的资源管理能力&#xff0c;还能体验更直观的操作界面。本文将详细解析从6.7 …...

手把手图解:用‘阻挫’和‘复本’理解自旋玻璃、自旋冰与量子自旋液体

手把手图解&#xff1a;用‘阻挫’和‘复本’理解自旋玻璃、自旋冰与量子自旋液体 凝聚态物理中那些看似晦涩的概念&#xff0c;往往只需要一个恰到好处的比喻就能豁然开朗。想象你正在参加一场磁铁小人的派对&#xff0c;它们的箭头方向就像固执的舞伴&#xff0c;既想跟随音乐…...

Android开源生态重构:从中心化控制到社区驱动的技术路径与挑战

1. 从“相对开放”到“真正自由”&#xff1a;Android生态的十字路口作为一名在移动通信和嵌入式系统领域摸爬滚打了十几年的工程师&#xff0c;我亲眼见证了Android从初代HTC Dream上那个略显笨拙的“小绿人”&#xff0c;成长为如今驱动全球数十亿智能设备的庞然大物。最近重…...

Python自动化脚本:模拟鼠标键盘输入保持系统活跃状态

1. 项目概述&#xff1a;当你的电脑需要“假装在线”你有没有遇到过这样的场景&#xff1a;公司要求电脑必须保持在线状态&#xff0c;否则会被判定为“离开”或“闲置”&#xff0c;影响考勤或系统状态&#xff1b;或者&#xff0c;你在运行一个需要持续交互的软件&#xff0c…...

开源提示词工程平台LynxPrompt:本地化部署与工程化实践指南

1. 项目概述&#xff1a;一个提示词工程的“瑞士军刀”如果你和我一样&#xff0c;长期在AI应用开发、内容创作或者自动化流程构建的一线工作&#xff0c;那么“提示词”这三个字对你来说&#xff0c;绝对不陌生。从简单的聊天对话&#xff0c;到复杂的代码生成、数据分析&…...

GPT-5级能力提前落地,ChatGPT 2026新增9大生产级功能,含RAG++动态知识图谱、零样本工作流编排、联邦学习微调接口——错过本轮升级将落后至少18个月

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;GPT-5级能力提前落地的技术本质与产业影响 当前&#xff0c;所谓“GPT-5级能力”并非依赖单一巨型模型发布&#xff0c;而是通过模型蒸馏、多专家协同推理&#xff08;MoE&#xff09;、实时知识注入与…...

做电力仪器选显示屏踩坑3年,终于摸透这四个选型标准

我是电力仪器设备厂的生产测试主管&#xff0c;干这行快7年了&#xff0c;前前后后负责过继保测试仪、变比测试仪、互感器校验仪等七八款产品的配件选型&#xff0c;光显示屏就换过四家供应商&#xff0c;踩过强电磁下跳数、低温黑屏、交期拖垮项目的坑&#xff0c;直到用上恒域…...

游戏交易税、年龄锁与拒付账单:APP出海全球合规风暴

上周&#xff0c;监管与平台的合规重拳&#xff0c;密集落在了游戏交易、未成年人保护和支付链条上。几项变化直接且锋利&#xff0c;对出海游戏厂商而言&#xff0c;已不再是远期预警&#xff0c;而是迫在眉睫的执行项。 美国州级监管&#xff1a;直指游戏内购与停服责任 科…...

工程师背包线缆管理实战:从Cord Hog到DIY收纳方案全解析

1. 项目概述&#xff1a;从“线缆地狱”到个人收纳方案的探索作为一名常年与各种开发板、调试器、电源适配器和数据线打交道的硬件工程师&#xff0c;我的背包简直就是个微缩版的电子实验室。每天通勤&#xff0c;包里除了笔记本电脑&#xff0c;必然塞满了USB线、串口线、JTAG…...