


Python logging module: expert-level tutorials, from beginner to proficient
Introduction
Thelogging module is the standard library for logging recording in python. It provides a unified interface for logging events in applications and allows developers to define fine-grained control of log levels, format log messages, and output logs to various targets (e.g., files, control Taiwan or Network socket).
getting Started
Create a Logger
To start logging, you first need to create a logger object. A logger can be created through the logging.getLogger(name)
function, where name
is an identifier string used to identify the logger.
import logging # 创建一个名为 "my_logger" 的 logger logger = logging.getLogger("my_logger")
Record log messages
You can use the logger.log(level, msg, *args, **kwargs)
method to record log messages, where:
level
: The level of the log message.msg
: Log message.*args
and**kwargs
: Optional parameters used to format log messages.
logger.info("程序已启动") logger.error("发生错误!")
Log level
The logging module defines the following log levels (from lowest to highest):
- DEBUG: Detailed information for debugging purposes.
- INFO: For general application messages.
- WARNING: Used to draw attention to a problem.
- ERROR: for errors and exceptions.
- CRITICAL: For critical errors or application crashes.
- NOTSET: Disable logging.
The log level can be set to the logger.level
property. For example, to set the level of my_logger
to WARNING
, you would use:
logger.level = logging.WARNING
Formatter
Formatters are used to control the appearance of log messages. Formatters can be created via the logging.F<strong class="keylink">ORM</strong>atter
class, which has the following parameters:
fmt
: The format string of the log message.datefmt
: Format string for date and time (optional).
# 创建一个格式化器,包含时间戳、日志级别和日志消息 formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")
processor
The processor is used to output log messages to a specific destination. The logging module provides some handlers out of the box, for example:
logging.StreamHandler
: Output log messages to the console.logging.FileHandler
: Output log messages to a file.logging.<strong class="keylink">Socket</strong>Handler
: Output log messages to a network socket.
# 创建一个处理器,将日志消息输出到控制台 handler = logging.StreamHandler() # 将格式化器添加到处理器 handler.setFormatter(formatter) # 将处理器添加到 logger logger.addHandler(handler)
filter
Filters are used to filter log messages based on specific conditions. The logging module provides the following filters:
logging.Filter
: Basic filter, allow or deny log messages.logging.LevelFilter
: Filter log messages based on log level.logging.MessageFilter
: Filter log messages based on the log message itself.
# 创建一个过滤器,仅允许 INFO 和 WARNING 级别的日志消息 filter = logging.LevelFilter(logging.INFO) # 将过滤器添加到处理器 handler.addFilter(filter)
Advanced Usage
Hierarchical logging
Python The logging module supports hierarchical logging, where a logger can inherit the properties and behavior of its parent logger. This allows building a logging structure with different levels of logging granularity.
Custom logging level
It is also possible to create custom logging levels to better suit the specific needs of your application. This can be achieved through the logging.addLevelName(level_name, level_value)
function.
Extended Logging module
The logging module can be extended with custom classes and functions to implement more advanced or specific logging functionality. For example, you can create your own processors or filters to meet specific requirements.
in conclusion
ThePython logging module is a powerful tool for logging in applications. It provides flexibility and customizability, allowing developers to build logging systems based on the specific needs of their applications. By following the basic principles and advanced techniques outlined in this tutorial, you can get the most out of the logging module and achieve efficient and informative logging for your applications.
The above is the detailed content of Python logging module: expert-level tutorials, from beginner to proficient. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Many website developers face the problem of integrating Node.js or Python services under the LAMP architecture: the existing LAMP (Linux Apache MySQL PHP) architecture website needs...

When using Scapy crawler, the reason why pipeline persistent storage files cannot be written? Discussion When learning to use Scapy crawler for data crawler, you often encounter a...

Choice of Python Cross-platform desktop application development library Many Python developers want to develop desktop applications that can run on both Windows and Linux systems...

Python process pool handles concurrent TCP requests that cause client to get stuck. When using Python for network programming, it is crucial to efficiently handle concurrent TCP requests. ...

Deeply explore the viewing method of Python functools.partial object in functools.partial using Python...

Getting started with Python: Hourglass Graphic Drawing and Input Verification This article will solve the variable definition problem encountered by a Python novice in the hourglass Graphic Drawing Program. Code...

How to handle high resolution images in Python to find white areas? Processing a high-resolution picture of 9000x7000 pixels, how to accurately find two of the picture...

Data Conversion and Statistics: Efficient Processing of Large Data Sets This article will introduce in detail how to convert a data list containing product information to another containing...
