开发者社区> 问答> 正文

python 怎么打印日志

python 怎么打印日志

展开
收起
云计算小粉 2018-05-10 20:09:59 1493 0
1 条回答
写回答
取消 提交回答
  • 阿里云ping https://ping.gaomeluo.com/aliyun/

    Django使用python自带的logging 作为日志打印工具。简单介绍下logging。

    logging 是线程安全的,其主要由4部分组成:

    Logger
    用户使用的直接接口,将日志传递给Handler
    Handler
    控制日志输出到哪里,console,file…
    一个logger可以有多个Handler
    Filter
    控制哪些日志可以从logger流向Handler
    Formatter
    控制日志的格式
    用户使用logging.getLogger([name])获取logger实例。
    如果没有名字,返回logger层级中的根logger(root logger)。以相同名字调用该函数总是返回同一个logger实例。这意味着logger实例不需要在应用的各个部分之间传来传去。

    Django通过在settings文件中使用LOGGING来定制日志输出(包括定义logger, handler, formatter等)

    例如,settings文件中定义如下:

    LOGGING = {

    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'verbose': {
            'format': '[%(asctime)s] [%(levelname)s] %(message)s'
        },
    },
    'handlers': {
        'console':{
            'level':'INFO',
            'class':'logging.StreamHandler',
            'formatter': 'verbose'
        },
        'file': {
            'level': 'INFO',
            'class': 'logging.FileHandler',
            'filename': 'D:/monitor.log',
            'formatter': 'verbose'
        },
        'email': {
            'level': 'ERROR',
            'class': 'django.utils.log.AdminEmailHandler',
            'include_html' : True,
        }
    },
    'loggers': {
        'django': {
            'handlers': ['console', 'file', 'email'],
            'level': 'INFO',
            'propagate': True,
        },
    },

    }

    代码中打印日志:

    logger = logging.getLogger(‘django’)
    logger.info(“This is an error msg”)
    1
    2
    [2017-07-15 17:44:51,316] [ERROR] This is an error msg

    这样,日志就被打印到终端和文件。

    2019-07-17 22:20:00
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载