Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Menduakan sys.stdout Python kepada Fail Log Tanpa Mengubah Suai Kod Saya?
Mendua sys.stdout ke Fail Log
Dalam Python, menduplikasi sys.stdout ke fail log boleh menyediakan penyelesaian bukan invasif untuk pengelogan tanpa mengubah suai kod aplikasi. Begini cara untuk mencapainya:
Dalam mod interaktif, apabila anda mahu output kedua-duanya dipaparkan pada skrin dan ditulis pada fail log, anda boleh mengembalikan logik yang digunakan dalam mod daemon. Daripada mengubah hala stdout dan stderr, salinkannya menggunakan os.dup2.
Kod di bawah menunjukkan perkara ini:
import os, sys # Open the log file for writing without buffering so = se = open("a.log", 'w', 0) # Duplicate stdout and stderr to the log file os.dup2(sys.stdout.fileno(), so.fileno()) os.dup2(sys.stderr.fileno(), se.fileno())
Pendekatan ini membolehkan anda melog semua output, termasuk output daripada panggilan sistem, tanpa menukar kod.
Sebagai alternatif, anda boleh memanfaatkan kelas Tee daripada yang disediakan coretan:
# Initialize a Tee object, redirecting stdout to a log file tee = Tee("a.log", 'w')
Kelas ini memastikan bahawa semua output ditulis pada fail log dan output standard, menjadikannya penyelesaian yang mudah untuk log masuk dalam mod interaktif tanpa mengubah suai kod aplikasi.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menduakan sys.stdout Python kepada Fail Log Tanpa Mengubah Suai Kod Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!