Django的logging-日志模块的简单使用方法

扩展阅读:
Python-Django的"日志功能-日志模块(logging模块)-日志输出"的功能详解

现在有下面的Python代码:

python 复制代码
# -*- coding: utf-8 -*-

def log_out_test(content_out):
    print(content_out)


content1 = "i love you01"
log_out_test(content1)

现在要把函数log_out_test()中的print语句中的内容以日志文件的形式输出:

可以像下面这样实现:

python 复制代码
# -*- coding: utf-8 -*-

import logging


def log_out_test(content_out):
    logger01.debug(content_out)


# 创建新的日志记录器
logger01 = logging.getLogger("my_logger")

# 配置日志记录器的日志文件路径和日志格式
file_handler_01 = logging.FileHandler('E:/log/my_log_file_01.log')
file_formatter_01 = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
file_handler_01.setFormatter(file_formatter_01)
logger01.addHandler(file_handler_01)

# 设置日志级别
logger01.setLevel(logging.DEBUG)

# 使用新的日志记录器进行调试
content = "i love you"
log_out_test(content)

对于上面的代码,如果认真读过我的另一篇博文:Python-Django的"日志功能-日志模块(logging模块)-日志输出"的功能详解 那么理解起来应该是没有问题。

不过这里还是补充说明一点:
问:为什么在函数log_out_test()的外部的实例化对象logger01并没有通过参数传递到函数,在函数内部也可以调用?

答:在 Python 中,logging 模块使用了全局状态(global state),因此,在代码中,logger01 实例化后成为一个全局变量。全局变量在整个模块中都是可见的,因此你可以在模块的任何地方访问它。

运行上面的代码后:

在路径E:\log\下生成了日志文件:my_log_file_01.log

内容如下:

我们修改下变量content的内容为"i love you02",再次运行上面的代码,发现原来的日志文件并没有被覆盖,而是被追加到了后面。如下图所示:

扩展阅读:
Python-Django的"日志功能-日志模块(logging模块)-日志输出"的功能详解

相关推荐
一只自律的鸡6 分钟前
【MySQL】第六章 子查询
数据库·mysql
Knight_AL24 分钟前
Spring Boot 事件机制详解:原理 + Demo
java·数据库·spring boot
野人李小白1 小时前
DBeaver 界面友好,支持多种数据库,具备强大的 SQL 编辑、可视化查询、数据迁移及插件扩展功能,是开发者首选的数据库管理工具。
数据库·sql
山峰哥1 小时前
SQL索引优化实战:3000字深度解析查询提速密码
大数据·数据库·sql·编辑器·深度优先
毕设源码-朱学姐1 小时前
【开题答辩全过程】以 基于Django框架中山社区社会补助系统为例,包含答辩的问题和答案
后端·python·django
观音山保我别报错1 小时前
消息队列项目基础知识总结
linux·服务器·数据库
jghhh012 小时前
MATLAB分形维数计算:1D/2D/3D图形的盒维数实现
数据库·matlab
重生之绝世牛码3 小时前
Linux软件安装 —— PostgreSQL高可用集群安装(postgreSQL + repmgr主从复制 + keepalived故障转移)
大数据·linux·运维·数据库·postgresql·软件安装·postgresql高可用
数据知道3 小时前
PostgreSQL 实战:详解 UPSERT(INSERT ON CONFLICT)
数据库·python·postgresql
源力祁老师3 小时前
Odoo日志系统核心组件_logger
网络·数据库·php