我有記錄的自定義配置views.py
如下:Django不寫日誌到文件
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
# Handlers
log_handlers = {
"terminal": logging.StreamHandler(),
"file_debug": logging.FileHandler("/var/log/eshot-api/{name}-{level}.log".format(name=__name__, level="DEBUG"), mode="w"),
"file_error": logging.FileHandler("/var/log/eshot-api/{name}-{level}.log".format(name=__name__, level="ERROR"), mode="w")
}
log_handlers["terminal"].setLevel(logging.INFO)
log_handlers["file_debug"].setLevel(logging.DEBUG)
log_handlers["file_error"].setLevel(logging.ERROR)
# Formatters
log_formatters = {
"terminal": logging.Formatter("[%(name)s]::[%(levelname)s]@[%(asctime)s]: %(message)s"),
"file_debug": logging.Formatter("[%(levelname)s]@[%(asctime)s]: %(message)s"),
"file_error": logging.Formatter("[%(asctime)s]: %(message)s")
}
for k, v in log_formatters.items():
log_handlers[k].setFormatter(v)
我創建了一個目錄/var/log/eshot-api
並獲准爲chmod 777
到該目錄中,這樣就不會有寫作問題。
我還創建了一個功能如下:
def initial_log(request, method):
logger.debug("{ip} requested {path} with {kwargs} in {method} method".format(ip=ipaddr(request), path=request.get_full_path(), kwargs=str(dict(request.GET)), method=method))
method
參數是通過「GET」或「POST」這個函數的字符串。
而且我已經把這個放在開始處,我的所有get
功能ClassBasedView
。但是,當我運行並刷新頁面幾次以生成一些日誌並查看我的日誌文件時,它們是空的。
而且,我想提一下,這是我自己的計算機中的開發服務器。
環境
- 的Django 1.9.6
- 的Ubuntu 14.04
- 蟒蛇3.5.1
[爲什麼Django日誌記錄不工作]的可能重複(http://stackoverflow.com/questions/36571284/why-django-logging-is-not-working)。同時告訴我們你的LOGGING配置。 – solarissmoke