如何在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')

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

相关推荐
FreeTinker5 小时前
HTML本地存储技术解析:localStorage与sessionStorage的原理、差异与应用场景
前端·html
qq_452396235 小时前
第十二篇:《全链路监控与可观测性:前端错误追踪与性能分析》
前端
DeepVisionary5 小时前
谷歌 Gemini Omni 1.1 Flash 正式发布:4K 视频、40 秒场景延伸,视频生成进入按 token 计费时代
python·自动化
阡之尘埃6 小时前
Python数据分析案例85——大模型微调全流程(SFT的LoRA微调)
人工智能·python·深度学习·语言模型·llm·微调·千问
海兰6 小时前
【应用】基于 Next.js 16 + Python mplfinance的金融K线图与技术指标可视化平台(三)
javascript·python·金融
EXI-小洲6 小时前
Java 操作 Word:字符串替换、图片插入、动态生成表格与API接口下载
java·开发语言·spring boot·word
cvcode_study6 小时前
Ollama+ComfyUI 多模态
大数据·人工智能·python
wangruofeng6 小时前
Phosphor Icons 官网源码拆解:URL 即存储、水波动画与 7362 Star 图标库的架构实践
前端·架构·github
BigTopOne6 小时前
WebRTC Native / Android 开发学习资源整理
前端
2601_961901707 小时前
SpringBoot使用Nacos进行application.yml配置管理
java·spring boot·spring