Python logging模块打印日志

logging打印日志,文件名为log_config.py 

import logging
import sysdef setup_logger(log_file, error_log_file):# 创建一个日志记录器logger = logging.getLogger(__name__)logger.setLevel(logging.DEBUG)  # 设置全局日志级别为 DEBUG# 创建一个文件处理器,将日志写入文件file_handler = logging.FileHandler(log_file)file_handler.setLevel(logging.DEBUG)  # 设置文件日志级别为 DEBUG# 创建一个错误文件处理器,将错误日志单独写入文件error_file_handler = logging.FileHandler(error_log_file)error_file_handler.setLevel(logging.ERROR)  # 设置错误文件日志级别为 ERROR# 创建一个控制台处理器,将日志输出到控制台console_handler = logging.StreamHandler(sys.stdout)console_handler.setLevel(logging.DEBUG)  # 设置控制台日志级别为 DEBUG# 创建一个日志格式化对象formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')# 将格式化应用到处理器file_handler.setFormatter(formatter)error_file_handler.setFormatter(formatter)console_handler.setFormatter(formatter)# 将处理器添加到日志记录器logger.addHandler(file_handler)logger.addHandler(error_file_handler)  # 将错误文件处理器添加到日志记录器logger.addHandler(console_handler)return loggerif __name__ == '__main__':logger = setup_logger('mail.log', 'error_mail.log')logger.debug('This is a debug message')logger.info('This is an info message')logger.DEBUGing('This is a DEBUGing message')logger.error('This is an error message')logger.critical('This is a critical message')

邮件发送,导入log_config.py配置

import smtplib
import socket
import log_config         #导入log_config.py
import logging
from email.mime.text import MIMEText
from email.header import Header#logger = log_config.setup_logger('mail.log','error_mail.log')def send_mail():from_address = '18847097110@163.com'to_address = '963268595@qq.com'subject = 'test email'body = 'hahahhahaha'smtp_server = 'smtp.163.com'smtp_port = 25username = '18847097110@163.com'password = 'your password'msg = MIMEText(body, 'plain', 'utf-8')msg['From'] = from_addressmsg['To'] = to_addressmsg['Subject'] = Header(subject, 'utf-8')logger = log_config.setup_logger('mail.log','error_mail.log')  #引用log_confog.py里的setup_loggerserver = Nonetry:sock = socket.create_connection((smtp_server, smtp_port), timeout=5)sock.close()server = smtplib.SMTP(smtp_server, smtp_port)server.login(username, password)server.sendmail(from_address, to_address, msg.as_string())logger.info('Email sent successfully!')except socket.error as e:logger.error(f'Socket error occurred: {e}',exc_info=True)except smtplib.SMTPException as e:logger.error(f'SMTP error occurred: {e}')except Exception as e:logger.error(f'An error occurred: {e}')finally:if server is not None:server.quit()if __name__ == '__main__':send_mail()

生成了一个mail.log和error_mai.log

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

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

相关文章

arcgis--二维建筑面的三维显示设置

1、打开ArcScene软件,导入数据,如下: 2、 对建筑面进行拉伸。双击建筑物面图层,打开属性表,选择【拉伸】选项卡,参数设置如下: 显示结果如下:

C#中.NET 6.0控制台应用通过EF访问已建数据库

目录 一、新建.NET 6.0控制台应用并建立数据库连接 二、下载并安装EF程序包 三、自动生成EF模型和上下文 1.Blog类模型 2.Post类模型 3.数据库上下文 四、设计自己的应用 VS2022的.NET6.0、.NET7.0框架下默认支持EF7(版本号7.0.13),除…

【腾讯云 HAI域探秘】探索AI绘画之路:利用腾讯云HAI服务打造智能画家

目录 前言1 使用HAI服务作画的步骤1.1 注册腾讯云账户1.2 创建算力服务器1.3 进入模型管理界面1.4 汉化界面1.5 探索AI绘画 2 模型参数的含义和调整建议2.1 模型参数的含义和示例2.2 模型参数的调整建议 3 调整参数作画的实践和效果3.1 实践说明3.2 实践效果13.3 实践效果23.4 …

No200.精选前端面试题,享受每天的挑战和学习

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…

Idea 编译SpringBoot项目Kotlin报错/Idea重新编译

原因应该是一次性修改了大量的文件, SpringBoot项目启动Kotlin报错, Build Project也是同样的结果, 报错如下 Error:Kotlin: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.9.0, expected version is 1.1.13. Build-&…

消防救援大队应用“码“上监管 实现重点领域监督全覆盖

近年以来,一直存在消防安全风险防控不精准、问题发现不及时、监督效果不明显等难点问题,我们充分利用信息化手段,探索开通“码上监督”网络举报平台,实现监督途径从“线下”拓展到“线上”,“码上监督”马上办。 问题…

鼎捷PLM:引领国产替代,创造极致体验,探索数字化研发可行之路

目录 01 直击痛点,鼎捷PLM重塑研发价值链 02 从实际需求出发,支持创新研发 ① 正向的设计思维 ② 智能化的产品设计 ③ 支持大规模定制的设计 03 广域协同,全供应链快速响应研发 04 精益管理,研发体系化、企业低碳化 05 生…

RGMII回环:IDDR+ODDR+差分接口

目录 一、实验内容二、原理解释三、程序1、顶层文件:2、子模块2.1 oddr模块2.2、iddr顶层模块2.3、iddr子模块 3、仿真4、注意5、下载工程及仿真 一、实验内容 1、通过IDDR和ODDR的方式完成RGMII协议; 2、外部接口使用OBUFDS、IBUFDS转换成差分接口&…

CodeWhisperer 使用经验分享

今天给大家分享一下 Amazon CodeWhisperer 编程工具(免费哦),使用这个软件后我的编码质量提升不少,给大家分享一下我的经验。希望大家支持哦。 Amazon CodeWhisperer 是亚⻢逊出品的一款基于机器学习的 AI 编程助手,可…

大数据毕业设计选题推荐-污水处理大数据平台-Hadoop-Spark-Hive

✨作者主页:IT研究室✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

自适应AI chatGPT智能聊天创作官网html源码/最新AI创作系统/ChatGPT商业版网站源码

源码简介: 自适应AI chatGPT智能聊天创作官网html源码,这是最新AI创作系统,作为ChatGPT商业版网站源码,它是支持创作、编写、翻译、写代码等。是一个智能聊天系统项目源码。 注意:这个只是网站html源码,要…

一文看懂aPaaS平台是什么意思?有哪些优势?

aPaaS开发平台是什么? aPaaS,Application Platform as a Service,应用程序平台即服务。国际知名咨询机构Gartner对aPaaS所下的定义是:“这是基于PaaS(平台即服务)的一种解决方案,支持应用程序在…

Python爬虫程序网络请求及内容解析

以下是一个简单的Python爬虫程序,用于爬取商户的内容。这个程序使用了requests和BeautifulSoup库来进行网络请求和内容解析。 import requests from bs4 import BeautifulSoup# 爬虫爬虫IP信息 proxy_host duoip proxy_port 8000# 请求URL url 目标网站# 创建一个…

【机器学习】 朴素贝叶斯算法:原理、实例应用(文档分类预测)

1. 算法原理 1.1 朴素贝叶斯方法 朴素贝叶斯方法涉及一些概率论知识,我们先来复习一下。 联合概率:包含多个条件,并且所有的条件同时成立的概率,公式为: 条件概率:事件A在另一个事件B已经发生的前提下发…

第3关:集合操作100

任务描述相关知识编程要求测试说明 任务描述 本关任务:使用 集合操作解决实际问题 相关知识 1.集合并操作符 可转换为SQL 若R,S的属性名不同,可使用重命名使相应列名一致后进行并操作 例如:R(A,B,C) S(D,E,F) select A,B from R union sel…

你真的会使用 MySQL中EXPLAIN吗

EXPLAIN是MySQL数据库中一个强大的工具,用于查询性能分析和优化。通过EXPLAIN,你可以查看MySQL查询的执行计划,了解MySQL是如何执行你的查询语句的。这篇文章将详细介绍EXPLAIN的使用,帮助你更好地理解和优化MySQL查询。 为什么使…

phpstudy 开启目录浏览功能

(1)在该目录下: (2)选择对应网站的配置文件; (3)修改: # Options FollowSymLinks ExecCGI Options Indexes FollowSymLinks ExecCGI

机器视觉行业,日子不过了吗?都进入打折潮,双11只是一个借口,打广告出新招,日子不好过是真的

我就不上图了,大家注意各个机器视觉公司公众号,为什么打折?打广告也只是宣传手段,进入打折潮,内卷严重,价格战变成白刃战,肯定日子不好过了。

【广州华锐互动】楼宇智能化VR虚拟教学系统

在如今的技术时代,教育行业正在逐步引入各种创新方法以提升教学质量。VR公司广州华锐互动开发的楼宇智能化VR虚拟教学系统就是其中的一种,它利用虚拟现实(VR)技术,为学生提供一种全新的、沉浸式的学习体验。 楼宇智能化VR虚拟教学系统涵盖综合…

青少年编程学习 等级考试 信奥赛NOI/蓝桥杯/NOC/GESP等比赛资料合集

一、博主愚见 在当今信息技术高速发展的时代,编程已经成为了一种必备的技能。随着社会对于科技人才的需求不断增加,青少年编程学习正逐渐成为一种趋势。为了更好地帮助青少年学习编程,提升他们的技能和素质,博主结合自身多年从事青…