python正确使用logging日志的方式

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: python正确使用logging日志的方式

在 Python 中,logging 模块是一个标准库,它提供了灵活且功能强大的日志记录工具。为了在自己的项目中,可以正常打印引入的其它依赖包的日志,正确的使用logging的方式是:


1. 配置 logging

在项目的入口处,例如主模块(最先执行的模块),配置 logging。这通常在你的项目的初始化代码中完成,例如在 main 函数或在脚本的顶部。

import logging
# 配置 logging,可以根据需要进行调整
logging.basicConfig(level=logging.INFO)
# 也可以从配置文件中获取
# logging.config.fileConfig('conf/logging.conf')


2. 获取 Logger 对象

在引入包的模块中,通常会使用 logging.getLogger(__name__) 来获取 Logger 对象。

# 在其他包的模块中
import logging
logger = logging.getLogger(__name__)
def some_function():
    logger.info('This is a log message from some_function')


3. 打印其他包中的日志

当你在你的项目中的某处调用了其他包中的函数时,该函数的日志将会使用你之前配置的 logging 配置。

# 在你的项目中的某处
from other_package import some_function
some_function()


这样配置后,你的项目中将会捕获到其他包中模块的日志,并按照你的配置进行处理。

示例

假设你有一个项目结构如下:

luaCopy codeproject/
|-- main.py
|-- other_package/
|   |-- __init__.py
|   |-- some_module.py


main.py 中配置 logging:

# main.py
import logging
logging.basicConfig(level=logging.INFO)
from other_package.some_module import some_function
some_function()


other_package/some_module.py 中使用 Logger:

# other_package/some_module.py
import logging
logger = logging.getLogger(__name__)
def some_function():
    logger.info('This is a log message from some_function')


运行 main.py,就能够在控制台看到类似以下的输出:

INFO:other_package.some_module:This is a log message from some_function


这说明你成功地配置了 logging,并且能够捕获其他包中的日志。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
2月前
|
C++ 开发者 Python
实现Python日志点击跳转到代码位置的方法
本文介绍了如何在Python日志中实现点击跳转到代码位置的功能,以提升调试效率。通过结合`logging`模块的`findCaller()`方法记录代码位置信息,并使用支持点击跳转的日志查看工具(如VS Code、PyCharm),开发者可以从日志直接点击链接定位到出错代码,加快问题排查。
49 2
|
17天前
|
消息中间件 JSON 自然语言处理
python多进程日志以及分布式日志的实现方式
python日志在多进程环境下的问题 python日志模块logging支持多线程,但是在多进程下写入日志文件容易出现下面的问题: PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。 也就是日志文件被占用的情况,原因是多个进程的文件handler对日志文件进行操作产生的。
|
20天前
|
Python
Python编程实战:利用闭包与装饰器优化日志记录功能
【7月更文挑战第7天】Python的闭包和装饰器简化了日志记录。通过定义如`log_decorator`的装饰器,可以在不修改原函数代码的情况下添加日志功能。当@log_decorator用于`add(x, y)`函数时,调用时自动记录日志。进一步,`timestamp_log_decorator`展示了如何创建特定功能的装饰器,如添加时间戳。这些技术减少了代码冗余,提高了代码的可维护性。
19 1
|
13天前
|
Unix Python
Python代码示例:使用`syslog`模块进行日志记录
Python代码示例:使用`syslog`模块进行日志记录
|
1月前
|
Python
python3获取内存和cpu利用率记录日志文件psutil
python3获取内存和cpu利用率记录日志文件psutil
40 1
|
2月前
|
安全 Python
Python 多进程日志输出到同一个文件并实现日志回滚
Python 多进程想要实现将日志输出到同一个文件中,使用同一个日志句柄,且日志需要按照日期,大小回滚。
|
2月前
|
监控 Python
Python中精通异常日志记录
Python中精通异常日志记录
23 0
|
1月前
|
存储 关系型数据库 MySQL
|
15天前
|
监控
查看服务器/IIS日志、log、访问信息基本方法
除了手动查看,你也可以使用日志分析工具,如Log Parser、AWStats等,这些工具可以帮助你更方便地分析日志数据。
8 1
|
23天前
|
Java 测试技术 Apache
《手把手教你》系列基础篇(八十六)-java+ selenium自动化测试-框架设计基础-Log4j实现日志输出(详解教程)
【7月更文挑战第4天】Apache Log4j 是一个广泛使用的 Java 日志框架,它允许开发者控制日志信息的输出目的地、格式和级别。Log4j 包含三个主要组件:Loggers(记录器)负责生成日志信息,Appenders(输出源)确定日志输出的位置(如控制台、文件、数据库等),而 Layouts(布局)则控制日志信息的格式。通过配置 Log4j,可以灵活地定制日志记录行为。
34 4