Django日志记录消息未保存在相应的文件中!

时间:2011-07-15 11:48:06

标签: django logging

我是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/')   

Dono为什么日志消息没有保存在那个文件中..任何人都给我解决方案,即使它是如此简单......这里有什么问题?

提前致谢..
摩尼

2 个答案:

答案 0 :(得分:11)

尝试使用此日志设置并查看是否有帮助。

注意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 :(得分:1)

几个问题。

  • 你在/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/