前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django实战-日志

Django实战-日志

作者头像
小团子
发布2019-09-17 16:56:24
4360
发布2019-09-17 16:56:24
举报
文章被收录于专栏:数据云团数据云团

Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。

Django使用python自带的 logging 作为日志打印工具。logging 是线程安全,其主要由4部分组成:

  • Formatters

控制日志的格式

  • Filters

控制哪些日志可以从 logger 流向 Handler

  • Handlers

控制日志输出到哪里,console,file…

一个 logger 可以有多个Handler

  • Loggers

用户使用的直接接口,将日志传递给Handler

一、settings.py 配置

设置 log 文件,如果不存在就新建 log 文件夹

代码语言:javascript
复制
LOG_DIR = os.path.join(BASE_DIR, "log")
if not os.path.exists(LOG_DIR):
    os.makedirs(LOG_DIR)
代码语言:javascript
复制
LOGGING = {
    # version为 1 ,定义了配置文件的版本,当前版本号为1.0 
    "version": 1.0,
    # 日志格式 % s 字符串,格式器
    "formatters": {
        # 详细的日志格式
        "standard": {
            "format": "%(asctime)s [%(threadName)s: %(thread)d]"
                        "%(pathname)s:%(funcName)s:%(lineno)d %(levelname)s - %(message)s"
        },
        # 简单的日志格式
        "simple": {
            "format": "%(asctime)s %(message)s"
        }
    },
    "filters": {
        # 配置过滤器的名字
        "test": {
            "()": "ops.TestFilter",
        }
    },
    # 格式器
    "handlers": {
        # 终端处理器
        "console_handler": {
            "level": "INFO",
            "class": "logging.StreamHandler",
            "formatter": "standard"
        },
        # 文件处理器 RotatingFileHandler 循环文件处理器
        "file_handler": {
            "level": "DEBUG",
            "class": "logging.handlers.RotatingFileHandler",
            # 指定路径的名字
            "filename": os.path.join(LOG_DIR, "backend.log"),
            "maxBytes": 1024*1024*1024,
            # 保存的备份数量
            "backupCount": 5,
            "formatter": "standard",
            "encoding": "utf8"
        },
        # 统计,产生文件
        "statistics_handler": {
            "level": "DEBUG",
            "class": "logging.handlers.RotatingFileHandler",
            # 指定路径的名字
            "filename": os.path.join(LOG_DIR, "statistics.log"),
            "maxBytes": 1024*1024*5,
            # 保存的备份数量
            "backupCount": 5,
            "formatter": "simple",
            "encoding": "utf8"
        }
    },
    "loggers": {
        # 日志的名字
        "django": {
            "handlers": ["console_handler", "file_handler"],
            "filters": ['test'],
            "level": "DEBUG"
        },
        "statistics": {
            "handlers": ["statistics_handler"],
            "level": "DEBUG"
        }
    }
}
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据云团 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
日志服务
日志服务(Cloud Log Service,CLS)是腾讯云提供的一站式日志服务平台,提供了从日志采集、日志存储到日志检索,图表分析、监控告警、日志投递等多项服务,协助用户通过日志来解决业务运维、服务监控、日志审计等场景问题。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档