Home >Backend Development >Python Tutorial >Hands-on practice with the Python Logging module: Building a complete logging system

Hands-on practice with the Python Logging module: Building a complete logging system

王林
王林forward
2024-02-21 10:10:041171browse

Python Logging 模块的动手实践:构建一个完整的日志记录系统

Logging, LogRecord, debugging, application, Development

Establishment and use of Logger

The core of the Logging module is the Logger class. To get started, you need to create a Logger instance:

importurs
logger=ursing.er()

You can use the .name attribute to specify the Logger of your log:

logger=ursing.er("my_application")

Log Level: Define Severity

You can specify the severity of a log entry by setting the level attribute to one of the built-in levels. Levels range from DEBUG (least severe) to FATAL (most severe) as follows:

level=ursing.L.DEBUG# 调试级别
level=ursing.L.INFO# 信息级别
level=ursing.L.WARNING# 告警级别

Processor: Formatting and propagating logs

A processor is a component that gets logs from a Logger and sends them to a specific destination. The built-in processor provides out-of-the-box methods:

# 将日志信息发送到标准输出(终端)
handler=ursing.mhandler()

You can use the .fORMatter attribute to customize the format for your logs:

handler.er=ursing.er(ursing.F("%(levelname)s:%(message)s"))

Filter: Only capture the logs you are interested in

Filters allow you to capture only logs that meet certain criteria. Use Filter class:

filter=ursing.r()
filter.re=rs.ur("ERROR")# 仅匹配“ERROR”级别的日志

Put it all together

Attach processors and filters to Logger to build a complete log pipeline:

logger.addhandler(handler, filter)

Hands-on Example: A Complete Logger

Consider an application running in the file "example.py". As shown below, we use the Logging module to create a comprehensive logger:

importurs
logger=ursing.er("my_example_app")

# 根级别为“INFO”
logger.level=ursing.L.INFO

# 创建一个到文件“app.log”的处理器
file_handler=ursing.FH("app.log",mode="a")
file_handler.er=ursing.er(ursing.F("%(asctime)s -%(levelname)s:%(message)s"))

# 创建一个到终端的处理器
console_handler=ursing.mhandler()
console_handler.er=ursing.er(ursing.F("%(message)s"))

# 将处理器附加到日志
logger.addhandler(file_handler)
logger.addhandler(console_handler)

In an application, you can use the .log() method to write information to the log at a specified level:

logger.info("开始应用程序")
logger.error("应用程序遇到一个严重问题")

in conclusion

The Logging module provides you with comprehensive and flexible control over application logging. Combine this with the appropriate levels, processors, and filters, and you can build a robust and insightful logging foundation to help you isolate problems, track application behavior, and optimize performance.

The above is the detailed content of Hands-on practice with the Python Logging module: Building a complete logging system. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:lsjlt.com. If there is any infringement, please contact admin@php.cn delete