Table of Contents
Introduction
getting Started" >getting Started
Create a Logger
Record log messages
Log level
Formatter
processor
filter
Advanced Usage
Hierarchical logging
Custom logging level
Extended Logging module
in conclusion
Home Backend Development Python Tutorial Python logging module: expert-level tutorials, from beginner to proficient

Python logging module: expert-level tutorials, from beginner to proficient

Mar 08, 2024 am 08:34 AM
python processor logging logging filter standard library Log level formatter

Python logging 模块:专家级教程,从入门到精通

Introduction

The

logging 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).

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")
Copy after login

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("发生错误!")
Copy after login

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
Copy after login

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")
Copy after login

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)
Copy after login

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)
Copy after login

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

The

Python 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!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to efficiently integrate Node.js or Python services under LAMP architecture? How to efficiently integrate Node.js or Python services under LAMP architecture? Apr 01, 2025 pm 02:48 PM

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...

What is the reason why pipeline persistent storage files cannot be written when using Scapy crawler? What is the reason why pipeline persistent storage files cannot be written when using Scapy crawler? Apr 01, 2025 pm 04:03 PM

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...

Python Cross-platform Desktop Application Development: Which GUI Library is the best for you? Python Cross-platform Desktop Application Development: Which GUI Library is the best for you? Apr 01, 2025 pm 05:24 PM

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...

What is the reason why the Python process pool handles concurrent TCP requests and causes the client to get stuck? What is the reason why the Python process pool handles concurrent TCP requests and causes the client to get stuck? Apr 01, 2025 pm 04:09 PM

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. ...

How to view the original functions encapsulated internally by Python functools.partial object? How to view the original functions encapsulated internally by Python functools.partial object? Apr 01, 2025 pm 04:15 PM

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

Python hourglass graph drawing: How to avoid variable undefined errors? Python hourglass graph drawing: How to avoid variable undefined errors? Apr 01, 2025 pm 06:27 PM

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 optimize processing of high-resolution images in Python to find precise white circular areas? How to optimize processing of high-resolution images in Python to find precise white circular areas? Apr 01, 2025 pm 06:12 PM

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...

How to efficiently count and sort large product data sets in Python? How to efficiently count and sort large product data sets in Python? Apr 01, 2025 pm 08:03 PM

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...

See all articles