Saya baru mengenal paket logging Python dan berencana menggunakannya untuk proyek saya. Saya ingin menyesuaikan format waktu sesuai selera saya. Ini adalah kode pendek yang saya salin dari tutorial:
import logging
# create logger
logger = logging.getLogger("logging_tryout2")
logger.setLevel(logging.DEBUG)
# create console handler and set level to debug
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
# create formatter
formatter = logging.Formatter("%(asctime)s;%(levelname)s;%(message)s")
# add formatter to ch
ch.setFormatter(formatter)
# add ch to logger
logger.addHandler(ch)
# "application" code
logger.debug("debug message")
logger.info("info message")
logger.warn("warn message")
logger.error("error message")
logger.critical("critical message")
Dan inilah hasilnya:
2010-07-10 10:46:28,811;DEBUG;debug message
2010-07-10 10:46:28,812;INFO;info message
2010-07-10 10:46:28,812;WARNING;warn message
2010-07-10 10:46:28,812;ERROR;error message
2010-07-10 10:46:28,813;CRITICAL;critical message
Saya ingin mempersingkat format waktu menjadi hanya: ' 2010-07-10 10:46:28
', menjatuhkan sufiks mili-detik. Saya melihat Formatter.formatTime, tetapi bingung. Saya menghargai bantuan Anda untuk mencapai tujuan saya. Terima kasih.
python
datetime
logging
formatting
Hai Vu
sumber
sumber
'formatters': { 'default': { 'format': '%(asctime)s | %(levelname)s | %(module)s | %(message)s', 'datefmt': '%Y-%m-%d %H:%M', },
Menggunakan
logging.basicConfig
, contoh berikut ini berfungsi untuk saya:Ini memungkinkan Anda untuk memformat & mengkonfigurasi semua dalam satu baris. Catatan log yang dihasilkan terlihat sebagai berikut:
sumber
jika menggunakan logging.config.fileConfig dengan file konfigurasi gunakan sesuatu seperti:
sumber
Untuk menambah jawaban lain, berikut adalah daftar variabel dari Dokumentasi Python.
sumber