Tôi mới sử dụng gói ghi nhật ký của Python và có kế hoạch sử dụng nó cho dự án của tôi. Tôi muốn tùy chỉnh định dạng thời gian theo sở thích của mình. Đây là một mã ngắn tôi sao chép từ một hướng dẫn:Làm thế nào để tùy chỉnh định dạng thời gian cho việc ghi nhật ký Python?
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")
Và đây là kết quả:
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
Tôi muốn rút ngắn thời gian định dạng chỉ: '2010-07-10 10:46:28
', thả mili- hậu tố thứ hai. Tôi nhìn vào Formatter.formatTime, nhưng bối rối. Tôi đánh giá cao sự giúp đỡ của bạn để đạt được mục tiêu của tôi. Cảm ơn bạn.
Lưu ý rằng nếu bạn đang sử dụng phương pháp định cấu hình đăng nhập dictConfig (ví dụ: nếu bạn đang sử dụng Django), bạn có thể đặt điều này bằng cách sử dụng khóa 'datefmt' dict cho trình định dạng. Xem: [Cấu hình ghi nhật ký Django] (http://docs.djangoproject.com/en/dev/topics/logging/#configuring-logging), [mô-đun ghi nhật ký: Chi tiết lược đồ từ điển] (http: //docs.python. org/2/library/logging.config.html # dictionary-schema-details) – taleinat
Ngoài ra, nếu bạn định cấu hình ghi nhật ký với basicConfig, nó có tham số được đặt tên được gọi là datefmt –
Trong 1.9, nếu bạn đang sử dụng cài đặt LOGGING, bạn có thể bao gồm mục nhập 'datefmt' như thế này ... ''formatters': { 'mặc định': { 'định dạng': '% (asctime) s | % (tên cấp) s | % (module) s | % (message) s ', ' datefmt ':'% Y-% m-% d% H:% M ', }, ' – jcfollower