Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Log ke Stdout dan Log Fail Secara serentak dalam Python?

Bagaimana untuk Log ke Stdout dan Log Fail Secara serentak dalam Python?

DDD
DDDasal
2024-10-18 18:55:29939semak imbas

How to Log to Stdout and Log File Simultaneously in Python?

Menulis Log ke Stdout dan Fail Log Secara Serentak dalam Python

Mengawal output log boleh menjadi penting untuk nyahpepijat dan menangkap maklumat penting dalam Python. Modul pengelogan menyediakan keupayaan yang luas untuk mengelog mesej ke fail. Walau bagaimanapun, adalah berfaedah untuk turut memaparkan log ke konsol (stdout) untuk keterlihatan serta-merta.

Penyelesaian:

Untuk memastikan semua mesej pengelogan dikeluarkan kepada stdout sebagai tambahan kepada fail log yang ditetapkan, anda boleh melanjutkan kefungsian modul pengelogan dengan menambahkan pengelogan.StreamHandler() pada pengelog akar.

Pelaksanaan:

<code class="python">import logging
import sys

# Capture stdout
stdout = sys.stdout

# Create a root logger
root = logging.getLogger()

# Set the logging level (DEBUG in this case)
root.setLevel(logging.DEBUG)

# Define the StreamHandler
handler = logging.StreamHandler(stdout)

# Configure the message format
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)

# Add the StreamHandler to the root logger
root.addHandler(handler)</code>

Dengan pengubahsuaian ini, semua mesej yang dilog menggunakan kaedah seperti logger.warning, logger.critical dan logger.error akan ditulis pada kedua-dua fail log yang dikonfigurasikan dan dipaparkan terus ke stdout. Ini memudahkan penyelesaian masalah dan memastikan mesej mudah diakses untuk diperiksa dengan segera.

Atas ialah kandungan terperinci Bagaimana untuk Log ke Stdout dan Log Fail Secara serentak dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn