我想Django的配置日誌記錄,這樣我在日誌中的每一行有session_key可以(如果設置)。我想我找到了一個方法:被定義一樣,Django的一致自定義日誌格式
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'request': {
'format': '%(asctime)s %(levelname)-8s [%(sessid)s] %(message)s',
},
},
'filters': {
'request': {
'()': 'yellowballs.yblogging.RequestFilter'
},
},
'handlers': {
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'filters': ['request'],
'formatter': 'request',
}
},
'loggers': {
'django': {
'handlers': ['console'],
'level': 'DEBUG',
'propagate': True,
},
},
}
與過濾器:
class RequestFilter(logging.Filter):
def filter(self, record):
session_store = SessionStore()
record.sessid = session_store.session_key
return True
它似乎運作良好,但Django的它記錄其信息的默認格式:
2013-03-01 08:44:41,359 WARNING [None] Not Found:/
[01/Mar/2013 08:44:41] "GET/HTTP/1.1" 200 1962
如何獲得線[01/Mar/2013 08:44:41] "GET/HTTP/1.1" 200 1962
在相同的格式記錄的其餘部分顯示?
有一個簡單而漂亮的方式來覆蓋所有的Django的默認格式,這樣的日誌消息將在整個項目是否一致?
呀,現在我已經改變了它,並糾正了問題,但它並沒有解決這個問題 - Django的日誌消息仍以不同的格式 – 2013-03-01 10:56:49
嘗試將django記錄器的級別更改爲INFO或DEBUG。您看到的日誌條目通過主'django'記錄器,並且您設置的最小ERROR級別爲 – 2013-03-01 11:04:00
ok,對其進行了更改,但它也無濟於事;仍然得到這些行: '[01/Mar/2013 02:41:33]「GET/HTTP/1.1」200 1962' – 2013-03-01 11:24:30