django 1.3+的简单日志到文件示例

| 发行说明说:   Django 1.3添加了框架级别   支持Python的日志记录模块。 真好。我想利用这一点。不幸的是,文档并没有以完整的示例代码形式将其全部交给我,这证明了这是多么简单和有价值。 如何设置此时髦的新功能,以便可以使用以下代码
logging.debug(\'really awesome stuff dude: %s\' % somevar)
并看到文件“ /tmp/application.log”填满了
18:31:59 Apr 21 2011 awesome stuff dude: foobar
18:32:00 Apr 21 2011 awesome stuff dude: foobar
18:32:01 Apr 21 2011 awesome stuff dude: foobar
默认的Python日志记录和此“框架级支持”之间有什么区别?     
已邀请:
我非常喜欢这个,这是您的工作示例!说真的,这太棒了! 首先将其放入您的
settings.py
LOGGING = {
    \'version\': 1,
    \'disable_existing_loggers\': True,
    \'formatters\': {
        \'standard\': {
            \'format\' : \"[%(asctime)s] %(levelname)s [%(name)s:%(lineno)s] %(message)s\",
            \'datefmt\' : \"%d/%b/%Y %H:%M:%S\"
        },
    },
    \'handlers\': {
        \'null\': {
            \'level\':\'DEBUG\',
            \'class\':\'django.utils.log.NullHandler\',
        },
        \'logfile\': {
            \'level\':\'DEBUG\',
            \'class\':\'logging.handlers.RotatingFileHandler\',
            \'filename\': SITE_ROOT + \"/logfile\",
            \'maxBytes\': 50000,
            \'backupCount\': 2,
            \'formatter\': \'standard\',
        },
        \'console\':{
            \'level\':\'INFO\',
            \'class\':\'logging.StreamHandler\',
            \'formatter\': \'standard\'
        },
    },
    \'loggers\': {
        \'django\': {
            \'handlers\':[\'console\'],
            \'propagate\': True,
            \'level\':\'WARN\',
        },
        \'django.db.backends\': {
            \'handlers\': [\'console\'],
            \'level\': \'DEBUG\',
            \'propagate\': False,
        },
        \'MYAPP\': {
            \'handlers\': [\'console\', \'logfile\'],
            \'level\': \'DEBUG\',
        },
    }
}
现在,这一切意味着什么? 格式化程序我希望它与./manage.py runserver的样式相同 处理程序-我需要两个日志-一个调试文本文件和一个信息控制台。这使我能够真正深入研究(如果需要)并查看文本文件,以了解幕后情况。 记录器-这是我们确定要记录的内容的地方。通常django会得到WARN或更高级别的警告-异常(因此传播)是后端,我喜欢在其中查看SQL调用,因为它们可能变得疯狂。 现在如何启用MYAPP来使用它... 根据文档,将其放在文件顶部(views.py)。
import logging
log = logging.getLogger(__name__)
然后拿出一些东西做。
log.debug(\"Hey there it works!!\")
log.info(\"Hey there it works!!\")
log.warn(\"Hey there it works!!\")
log.error(\"Hey there it works!!\")
日志级别在这里说明,纯Python在此处说明。     
基于rh0dium建议的日志记录配置以及我自己做的更多研究,我开始组装一个示例Django项目,该项目具有很好的日志记录默认值– fail-nicely-django。 样本日志文件输出:
2016-04-05 22:12:32,984 [Thread-1    ] [INFO ] [djangoproject.logger]  This is a manually logged INFO string.
2016-04-05 22:12:32,984 [Thread-1    ] [DEBUG] [djangoproject.logger]  This is a manually logged DEBUG string.
2016-04-05 22:12:32,984 [Thread-1    ] [ERROR] [django.request      ]  Internal Server Error: /
Traceback (most recent call last):
  File \"/Users/kermit/.virtualenvs/fail-nicely-django/lib/python3.5/site-packages/django/core/handlers/base.py\", line 149, in get_response
    response = self.process_exception_by_middleware(e, request)
  File \"/Users/kermit/.virtualenvs/fail-nicely-django/lib/python3.5/site-packages/django/core/handlers/base.py\", line 147, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File \"/Users/kermit/projekti/git/fail-nicely-django/djangoproject/brokenapp/views.py\", line 12, in brokenview
    raise Exception(\'This is an exception raised in a view.\')
Exception: This is an exception raised in a view.
自述文件中详细说明了用法,但实际上,您是将logger模块复制到Django项目中,并在settings.py的底部添加了ѭ7。     

要回复问题请先登录注册