2017-06-16 56 views
0

我試着給下面的設置來使用Django記錄:Django的創建日誌文件,但不寫進去

LOGGING = { 
'version': 1, 
'disable_existing_loggers': False, 
'filters': { 
    'require_debug_false': { 
     '()': 'django.utils.log.RequireDebugFalse', 
    }, 
    'require_debug_true': { 
     '()': 'django.utils.log.RequireDebugTrue', 
    }, 
}, 
'formatters': { 
    'simple': { 
     'format': '[%(asctime)s] %(levelname)s %(message)s', 
     'datefmt': '%Y-%m-%d %H:%M:%S' 
    }, 
}, 
'handlers': { 
    'logfile': { 
     'level': 'INFO', 
     'filters': ['require_debug_false','require_debug_true'], 
     'class': 'logging.FileHandler', 
     'filename': '/tmp/django-log.log', 
     'formatter': 'simple' 
    }, 
}, 
'loggers': { 
    'user_activity': { 
     'handlers': ['logfile',] 
    }, 
} 

}

,然後在視圖中使用它像以下:

user_logger = logging.getLogger('user_activity') 
... 
user_logger.info("opened page") 

雖然Django創建文件django-log.log,但它不寫入它。 我的設置有問題嗎?

感謝

+0

你有在文件夾中的寫入權限嗎?如果您使用的是ubuntu,請嘗試使用sudo來運行 – Exprator

+0

nope,這不是關於權限。我檢查了所有的權限 –

回答

0

在處理程序:

寫入記錄之前嘗試此過濾器,您可以使用django.utils.log.RequireDebugFalsedjango.utils.log.RequireDebugTrue,而不是兩者。它們是相互排斥的。

+0

yeap,看起來像是這個問題!謝謝 –

0

您需要在創建使用logging.getLogger(name)日誌對象設置日誌記錄的級別:

user_logger.setLevel(logging.INFO)