如何在python文件中使用日志功能?简单版本

在项目中实用日志时非常常见的,同样在python文件中也可以使用日志,记录一些关键的日志信息,这里简单列举如何在python文件中直接使用日志,分别参考下面代码中的 1 到 5 步骤:

文件 logUser.py 如下:

python 复制代码
# -*- coding: UTF-8 -*-
# ========================================
# @ProjectName: pythonws001
# @Filename: logUse.py
# @Copyright www.xxx.com
# @Author: shenzhennba(Administrator)
# @Version 1.0
# @Since 2025/12/6 13:35
# ========================================
# 简单单个logging模块的使用方法
# ========================================
# 1,导入logging模块
import logging
import datetime

# 2,配置默认的日志输出级别和输出格式,可选配置,不配置则使用默认配置
logging.basicConfig(level=logging.INFO,
                    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')

# 3,定义和设置控制台日志输入格式对象(可选配置)
consoleHandler = logging.StreamHandler()
consoleHandler.setFormatter(logging.Formatter(
    '%(asctime)s - %(name)s - %(levelname)s - %(message)s'))

# 4,定义和设置日志文件输出格式对象(可选配置)
fileHandler = logging.FileHandler(
    r'F:\appData\tempLog\pythonws001.log', encoding='utf-8')
# fileHandler = logging.FileHandler(
# r'pythonws001.log',encoding='utf-8') #无路径,默认在包所在目录下
fileHandler.setFormatter(logging.Formatter(
    '%(asctime)s - %(name)s - %(levelname)s - %(message)s'))

# 5,获取日志对象和是指各种输出处理器,
# 每个模块将有自己的日志记录器,并且可以通过模块名来区分日志消息的来源。
logger = logging.getLogger(__name__)
# 设置日志记录器的日志级别
logger.setLevel(logging.INFO)
# 添加日志输出处理对象
logger.addHandler(consoleHandler)
logger.addHandler(fileHandler)


# 6,在代码中使用日志对象记录日志信息
# logger.info("这是一个 info 级别的日志")


def fun01(name):
    logger.debug("这是一个 debug 级别的日志")
    logger.info("这是一个 info 级别的日志")
    print(f'Hi, {name}')
    print(f'date time: {datetime.datetime.now()}')
    logger.warning("这是一个 warning 级别的日志")
    logger.error("这是一个 error 级别的日志")
    logger.critical("这是一个 critical 级别的日志")


if __name__ == '__main__':
    fun01('Python')

需要注意的是,这里简单使用,所以在单个文件中使用问题不大,但在项目中多个文件如果都这样写存在每次重复写的缺点,所以在项目中不推荐这样写,应抽出一个通用模块比较好。

相关推荐
90后的晨仔10 分钟前
Mac 开发 uni-app 终极方案:让安卓模拟器彻底脱离 Android Studio 独立运行
前端·vue.js
90后的晨仔15 分钟前
别再搞混了!uni-app 中 node_modules 和 uni_modules 到底是什么关系?
前端
kyriewen1 小时前
面试官问"这段逻辑为什么这样写"——我才发现,这半年我写的代码,我自己都解释不了
前端·javascript·面试
谢小飞1 小时前
大文件上传很难?学会这招,GB文件秒传不是梦
前端·node.js
ZJH__GO2 小时前
网络编程v4pro--实现聊天室文件传输功能
java·服务器·网络·计算机网络
程序员黑豆2 小时前
Windows 系统 Java 环境变量配置全攻略:解决“不是内部或外部命令”
java·前端·ai编程
命运之光2 小时前
【C语言完整代码】就诊信息管理系统
java·c语言·开发语言
To_OC2 小时前
别只拿 useRef 绑 DOM 了,搭配 Web Worker 解决页面卡顿才是真的香
前端·react.js·dom
猿长大人3 小时前
C# | Serilog 新手入门
开发语言·c#·.net·log
IT_陈寒3 小时前
Vue的响应式让我原地破防,原来问题出在这
前端·人工智能·后端