logging的一些参数用法

#1.logging.Formatter
原文地址:https://blog.youkuaiyun.com/jacke121/article/details/85239228

formatter = logging.Formatter('%(asctime)s-%(name)s-%
(filename)s-[line:%(lineno)d]-%(levelname)s-[日志信息]: 
%(message)s',datefmt='%a, %d %b %Y %H:%M:%S')

看下打印结果:
Fri, 06 Dec 2019 10:27:35-common.RecordLog-ParseConfig.py-[line:46]-INFO-
[日志信息]: 从配置文件D:\down\LoanApiAutoTest-master\config\config.ini解析
Host_Url信息为http://**:8080/futureloan/mvc/api
%a:周几
%d:当月的第几天
%b:月份名
%Y:年份
%H:时
%M:分
%S:秒
此外
%(asctime)s:字符串形式默认格式:“2019-12-06 16:54:45,565”
%(name)s:Logger的名字
%(filename)s:调用日志输出的模块的文件名
%(lineno):数字形式的日志级别
%(levelname)s:文件模式的日志级别
#2
file_handler = RotatingFileHandler(self.__path, maxBytes=1010241024, backupCount=3, encoding=‘utf-8’)
self.__path:自定义日志文件的路径或者文件名
maxBytes:配置日志文件的大小上限
backupCount:配置文件的数量上限

### Python中使用Logging模块进行日志记录 #### 导入Logging模块并设置基本配置 为了开始使用`logging`模块,在脚本文件的顶部导入该模块,并调用`basicConfig()`函数来设定一些必要的参数,比如日志级别、格式以及目标输出位置等[^1]。 ```python import logging # 配置日志的基本设置 logging.basicConfig( level=logging.DEBUG, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", filename='app.log', # 将日志写入指定文件 filemode='w' # 覆盖模式打开日志文件,默认是追加模式'a' ) ``` #### 创建Logger对象 虽然可以直接通过`logging`模块的方法(如`debug()`, `info()`等)发送消息给默认的日志处理器,但是更推荐的做法是创建自己的`Logger`实例。这允许更加精细地控制不同部分的日志行为[^2]。 ```python logger = logging.getLogger('my_logger') handler = logging.StreamHandler() formatter = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s') handler.setFormatter(formatter) logger.addHandler(handler) # 设置最低严重程度;低于这个级别的日志将被忽略 logger.setLevel(logging.INFO) ``` #### 记录不同类型的消息 一旦完成了上述准备工作之后就可以利用不同的方法来记录各种类型的事件了。每种类型对应着特定的颜色编码和重要性等级: - `DEBUG`: 开发期间用于调试目的的信息; - `INFO`: 描述正常操作流程的一般状态更新; - `WARNING`: 表明某些意外情况发生但不影响整体功能的通知; - `ERROR`: 报告错误条件下的异常状况; - `CRITICAL`: 极其严重的错误,可能导致应用程序无法继续运行下去[^3]。 ```python try: result = 10 / 0 except ZeroDivisionError as e: logger.error(f"An error occurred while dividing by zero: {e}") finally: logger.info("Operation completed.") ``` #### 自定义日志格式与多目的地输出 除了简单的文本形式外还可以自定义日志条目所呈现的方式,甚至同时向多个地方发送相同的内容副本。例如,既保存至本地磁盘又显示于终端屏幕上[^4]。 ```python console_handler = logging.StreamHandler() file_handler = logging.FileHandler('error_log.txt') # 定义两种不同的格式化器分别应用于两个处理程序上 simple_formatter = logging.Formatter('%(levelname)s:%(message)s') detailed_formatter = logging.Formatter('%(asctime)s-%(name)s-%(levelname)s-%(message)s') console_handler.setFormatter(simple_formatter) file_handler.setFormatter(detailed_formatter) # 添加这两个新的处理器到我们的logger里去 logger.addHandler(console_handler) logger.addHandler(file_handler) # 测试一下效果 logger.warning('This will appear on screen and also saved into the file.') ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值