[野路数] Django中使用logging

我对服务器端app的开发还是没有入门的阶段,但是那啥,还是保持热情不是,于是乎今天特别想给自己的使用了Django的程序里加上日志(logging)。原因很简单,就是因为希望在Django提供的Debug页面的基础上,能够输出一些额外信息出来,也就是传说中的 printf 啦。。。吐舌头


对了,其实我不太会用Python的各种高级的系统,比如logging system。。。比如logger, handler, formatter & filter。。。


但是Django的logging的documentation给出了一段简略的科普,已经基本够用了。但对于我来讲,唯独两个地方没有讲清楚:(1)如何配置logging;(2)如何使用logging。


嘛,貌似上面说的“基本够用”了,有点打脸了。


Bing了一下(别问我为何不Google一下,因为你懂的,这个时间段不要没事架梯子。),两个问题都解决了。首先,配置logging如同缘分注定一般,在settings.py文件里完成。这是我的直觉告诉我的,后来发现是正确的。直接在settings.py里添加配置信息,以下是从Django官方documentation上复制下来的代码。

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,
        },
    },
}
这段配置代码里面最迷的就是名为 django 的logger。官方documentation貌似说本来就有默认的django的logger叫django。反正这里就明确配置了一个叫做django的logger。


然后是如何使用logger,这个也很迷。实际上我没有仔细看python的logging的documentation,最后是在如下网页上找到灵感的。

https://www.loggly.com/docs/django-logs/

也就是说,要想使用名为django的logger,需要首先获取这个名为django的logger。具体操作如下

# import the logging library
import logging

# Get an instance of a logger
logger = logging.getLogger(__name__)

def my_view(request, arg1, arg):
    ...
    if bad_mojo:
        # Log an error message
        logger.error('Something went wrong!')
以上代码还是从 Django官方documentation上直接复制的。这里documentation上说使用__name__作为logger的名称有诸多好处,还可以用propagate功能。但是对于我们这个非常简化的logging系统来讲,完全不用__name__,明确用‘django’即可。这是获取到的就是刚刚配置过的名为django的logger了。后面就可以愉快地向日志文件输出了。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值