簡體   English   中英

如何登錄Django 1.9

[英]how to do logging in Django 1.9

軟件

  • Django 1.9
  • Python 3.4
  • Postgres 9.x

發生了什么

我在Django 1.9中使用以下代碼

from django.db import connection
    cursor = connection.cursor()
    cursor.execute('SELECT .... WHERE ... GROUP BY p.id')
    rows = cursor.fetchall()

我想在日志文件中看到行

我做了什么嘗試

我將文檔中粘貼的內容復制到我的settings.py中

import logging.config
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'file': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': os.path.join(DJANGO_ROOT, 'WIT.log')
        },
    },
    'loggers': {
        'django': {
            'handlers': ['file'],
            'level': 'DEBUG',
            'propagate': True,
        },
    },
}

有什么問題?

之后,我被困在如何記錄特定rows 能夠幫助?

基本上你現在需要做的就是開始向記錄器寫消息 ,像@Serjik建議的那樣:

logger.info(each_row_data)

一點理論

記錄 DJANGO由四部分組成:

  • 記錄器 :進入記錄系統的入口點
  • 處理程序 :確定記錄器中每條消息發生情況的引擎
  • 過濾器 :過濾器用於提供對從記錄器到處理程序的日志記錄傳遞的額外控制。
  • 格式化程序 :描述日志的確切格式。

你所做的實際上是聲明處理程序,但現在你需要一個記錄器的實例,你可以在其中編寫你的日志,然后由Handler處理。

登錄信息

# Get an instance of a logger
logger = logging.getLogger(__name__)
logger.error('Something went wrong!')

聲明寫入本地文件的處理程序

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'file': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': '/path/to/django/debug.log',
        },
    },
    'loggers': {
        'django': {
            'handlers': ['file'],
            'level': 'DEBUG',
            'propagate': True,
        },
    },
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM