2014-02-13 108 views
0

我想開始使用Django和作爲第一toyproject我使用的功能來發送電子郵件和記錄在現有的應用程序使用Django登錄

這裏有一個小的腳本:

import os 
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings") 

import logging 
logger = logging.getLogger("myLogger") 
logger.debug("A") 
logger.info("B") 
logger.error("C") 

我settings.py坐在非常相同的文件夾中存在下面的代碼片斷:

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

當執行(運行腳本,沒有涉及Django的服務器)它產生出把

沒有處理程序可以發現記錄器「myLogger」

有何評論?我可以使用標準的記錄,但我懷疑的是,我在這裏的東西,而根本...

托馬斯

+0

它可能是無關緊要的,但是(雙斜槓)你的路徑正確的日誌文件? – Ambroise

+0

刪除它沒有區別... – tschm

+0

請參閱「寫一個自定義管理命令,而不是單獨的腳本附近manage.py https://docs.djangoproject.com/en/dev/howto/custom-management-commands/它的日誌工程罰款管理命令。「 http://stackoverflow.com/questions/15340516/django-logging-in-script-near-manage-py-messages-are-just-ignored – fragles

回答

1

嘗試配置日誌喜歡的Django:

Django的1.6:

from django.conf import settings 
settings.configure() 

For 1.7:

from django.conf import settings 
from django.utils.log import configure_logging 

configure_logging(settings.LOGGING_CONFIG, settings.LOGGING) 
+0

有趣的是,我想我正在使用Django 1.6。我沒有在Django.utils.log中配置日誌。 – tschm

+0

進口OS os.environ.setdefault( 「DJANGO_SETTINGS_MODULE」, 「設置」) 從django.conf導入設置 從django.utils.log進口dictConfig dictConfig(settings.LOGGING) – tschm

+0

@tschm行動!你對了。編輯迴應。 – pbacterio

2

感謝pbacterio,那是一個寶進入正確的方向。這適用於我

import os 
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings") 

from django.conf import settings 
from django.utils.log import dictConfig 

dictConfig(settings.LOGGING)