Сообщение журнала Django не сохраняется в соответствующем файле! - PullRequest
1 голос
/ 15 июля 2011

Я новичок в django ... Сейчас изучаю концепцию Django-logging .. Моя проблема в том, что сообщения журнала не сохраняются в файле, который я использовал в своем коде ниже,

(В моемsettings.py)

LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
    'simple': {
        'format': '%(asctime)s %(levelname)s %(name)s %(message)s'
    },
},
'handlers': {
    'default': {
        'level':'DEBUG',
        'class':'logging.handlers.RotatingFileHandler',
        'filename': '/home/linuxuser/mani/f/logs/msg.log',
        'maxBytes': 1024*1024*5, # 5 MB
        'backupCount': 5,
        'formatter':'simple',
    },
},
'loggers': {
    'sample': {
        'handlers': ['default'],
        'level': 'DEBUG',
        'propagate': True,
    },
}

}

(в моем views.py)

import logging   
import logging.handlers   
from django.conf import settings   
logger = logging.getLogger('sample')   

def empdel(request,id):   
    e = get_object_or_404(emp, pk=id)   
    e.delete()   
    logger.info('A row is deleted successfully !!!') [# here is my prob..this msg is not saved in '/home/linuxuser/mani/f/logs/msg.log' #]

    return HttpResponseRedirect('/empthanks/')   

Дон, почему сообщение журнала не сохраняется в этом файле .. ПросьбаКто-нибудь, дайте мне решение, даже если оно настолько простое ... Что здесь не так?

Заранее спасибо ..
Мани

Ответы [ 2 ]

11 голосов
/ 19 июля 2011

Попробуйте сделать это для настройки ведения журнала и посмотрите, поможет ли это.

Обратите внимание, что disable_existing_loggers имеет значение True, и я добавил по умолчанию '' для регистраторов.

LOGGING = {
    'version': 1,
    'disable_existing_loggers': True,
    'formatters': {
        'standard': {
            'format': '%(asctime)s %(levelname)s %(name)s %(message)s'
        },
    },
    'handlers': {
        'default': {
            'level':'DEBUG',
            'class':'logging.handlers.RotatingFileHandler',
            'filename': '/home/linuxuser/mani/f/logs/msg.log',
            'maxBytes': 1024*1024*5, # 5 MB
            'backupCount': 5,
            'formatter':'standard',
        },  
        'request_handler': {
                'level':'DEBUG',
                'class':'logging.handlers.RotatingFileHandler',
                'filename': 'logs/django_request.log',
                'maxBytes': 1024*1024*5, # 5 MB
                'backupCount': 5,
                'formatter':'standard',
        },
    },
    'loggers': {

        '': {
            'handlers': ['default'],
            'level': 'DEBUG',
            'propagate': True
        },
        'django.request': { # Stop SQL debug from logging to main logger
            'handlers': ['request_handler'],
            'level': 'DEBUG',
            'propagate': False
        },
    }
}
1 голос
/ 15 июля 2011

Несколько вопросов.

  • Вы видите что-нибудь в /home/linuxuser/mani/f/logs/msg.log?
  • Или просто не сообщение журнала, которое вы хотели? Если вы ничего не видите
  • У вас есть разрешение на запись в этот файл?

В вашем случае 2 вам не нужно это в файле settings.py.

import logging    
import logging.handlers    
from django.conf import settings    
logging.basicConfig()

вам просто нужен кортеж LOGGING. Для получения дополнительной информации о конфигурации см. Документацию django.

https://docs.djangoproject.com/en/1.3/topics/logging/

...