Tôi thực sự yêu thích điều này rất nhiều đây là ví dụ làm việc của bạn! Nghiêm túc điều này là tuyệt vời!
Bắt đầu bằng cách đưa cái này vào settings.py
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'formatters': {
'standard': {
'format' : "[%(asctime)s] %(levelname)s [%(name)s:%(lineno)s] %(message)s",
'datefmt' : "%d/%b/%Y %H:%M:%S"
},
},
'handlers': {
'null': {
'level':'DEBUG',
'class':'django.utils.log.NullHandler',
},
'logfile': {
'level':'DEBUG',
'class':'logging.handlers.RotatingFileHandler',
'filename': SITE_ROOT + "/logfile",
'maxBytes': 50000,
'backupCount': 2,
'formatter': 'standard',
},
'console':{
'level':'INFO',
'class':'logging.StreamHandler',
'formatter': 'standard'
},
},
'loggers': {
'django': {
'handlers':['console'],
'propagate': True,
'level':'WARN',
},
'django.db.backends': {
'handlers': ['console'],
'level': 'DEBUG',
'propagate': False,
},
'MYAPP': {
'handlers': ['console', 'logfile'],
'level': 'DEBUG',
},
}
}
Bây giờ tất cả những điều này có nghĩa là gì?
- Các bộ định dạng Tôi muốn nó có cùng kiểu với ./manage.py runningerver
- Trình xử lý - tôi muốn có hai nhật ký - một tệp văn bản gỡ lỗi và một bảng điều khiển thông tin. Điều này cho phép tôi thực sự đào sâu (nếu cần) và xem một tệp văn bản để xem điều gì sẽ xảy ra.
- Loggers - Đây là nơi chúng tôi ghi lại những gì chúng tôi muốn ghi nhật ký. Nói chung, django nhận được CẢNH BÁO trở lên - ngoại lệ (do đó có tính phổ biến) là phần phụ trợ nơi tôi thích xem các lệnh gọi SQL vì chúng có thể trở nên điên rồ .. Cuối cùng là ứng dụng của tôi có hai trình xử lý và đẩy mọi thứ vào đó.
Bây giờ làm cách nào để kích hoạt MYAPP để sử dụng nó ...
Theo tài liệu, hãy đặt điều này ở đầu tệp của bạn (views.py) ..
import logging
log = logging.getLogger(__name__)
Sau đó, để có được một cái gì đó ra làm điều này.
log.debug("Hey there it works!!")
log.info("Hey there it works!!")
log.warn("Hey there it works!!")
log.error("Hey there it works!!")
Các cấp độ nhật ký được giải thích ở đây và cho python thuần túy ở đây .