码迷,mamicode.com
首页 > 其他好文 > 详细

django 加日志

时间:2019-06-25 22:15:35      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:调用   模块名   ica   att   post   lin   线程   pytho   打开文件   

LOGGING = {
    version: 1,
    disable_existing_loggers: False,
# 指定输出的格式,被handler使用。
    formatters: {
        standard: {
            format: %(asctime)s %(levelname)-8s %(message)s
        },
        detail: {
            format: %(asctime)s %(levelname)-8s %(pathname)s[line:%(lineno)d] %(message)s
        },
    },
# 指定输出到控制台还是文件中,以及输出的方式。被logger引用。
    handlers: {
        # 输出到控制台
        console: {
            level: INFO,
            class: logging.StreamHandler,
            formatter: standard,
        },
        file: {
            level: INFO,
            class: logging.handlers.RotatingFileHandler,
            # 存放的日志的位置
            filename: rF:\python\myorm\log,
            maxBytes: 1024 * 1024 * 5,  # 5 MB
            backupCount: 100,
            formatter: detail,
        },

        web_file: {
            level: INFO,
            class: logging.handlers.RotatingFileHandler,
            # 日志的位置
            filename: rF:\python\myorm\web\web.log,
            maxBytes: 1024 * 1024 * 5,  # 5 MB
            backupCount: 100,
            formatter: detail,
        },
        rbac_file: {
            level: INFO,
            class: logging.handlers.RotatingFileHandler,
            # 日志的位置
            filename: rF:\python\myorm\rbac\rbac.log,
            maxBytes: 1024 * 1024 * 5,  # 5 MB
            backupCount: 100,
            formatter: detail,
        },
    },

# 指定django中的每个模块使用哪个handlers。以及日志输出的级别。
    loggers: {
        django: {
            handlers: [console, file],
            level: INFO,
            propagate: True,
        },
        # 自定义模块日志
        users: {
            handlers: [console, file],
            level: DEBUG,
            propagate: True,
        },
        common: {
            # 使用哪一个 handlers
            handlers: [console, file],
            level: DEBUG,
            propagate: True,
        },

        # web 应用的名字
        web: {
            handlers: [console, web_file],
            level: INFO,
            propagate: True,
        },
        rbac: {
            handlers: [console, rbac_file],
            level: INFO,
            propagate: True,
        },

    },
}

 

 

此配置分成三个部分:

  • formatters: 指定输出的格式,被handler使用。
  • handlers: 指定输出到控制台还是文件中,以及输出的方式。被logger引用。
  • loggers: 指定django中的每个模块使用哪个handlers。以及日志输出的级别。

注意:日志的输出级别是由loggers中的每个模块中level选项定义。如果没有配置,那么默认为warning级别。

然后在每个模块的views.py中,通过下面代码使用:

import logging
logger = logging.getLogger(__name__)

具体的输出部分代码为:

logger.debug("hello, world")
logger.info("hello, world")
logger.error("hello, world")

日志记录级别 Level

logging模块的重点在于生成和处理日志消息。每条消息由一些文本和指示其严重性的相关级别组成。级别包含符号名称和数字

级别描述
CRITICAL 50 关键错误/消息
ERROR 40 错误
WARNING 30 警告消息
INFO 20 通知消息
DEBUG 10 调试
NOTSET 0 无级别

 

记录器 Logger

记录器负责管理日志消息的默认行为,包括日志记录级别、输出目标位置、消息格式以及其它基本细节。

关键字参数

  • filename 将日志消息附加到指定文件名的文件
  • filemode 指定用于打开文件模式
  • format 用于生成日志消息的格式字符串
  • datefmt 用于输出日期和时间的格式字符串
  • level 设置记录器的级别
  • stream 提供打开的文件,用于把日志消息发送到文件。

日志消息格式 format

  • %(name)s 记录器的名称
  • %(levelno)s 数字形式的日志记录级别
  • %(levelname)s 日志记录级别的文本名称
  • %(filename)s 执行日志记录调用的源文件的文件名称
  • %(pathname)s 执行日志记录调用的源文件的路径名称
  • %(funcName)s 执行日志记录调用的函数名称
  • %(module)s 执行日志记录调用的模块名称
  • %(lineno)s 执行日志记录调用的行号
  • %(created)s 执行日志记录的时间
  • %(asctime)s 日期和时间
  • %(msecs)s 毫秒部分
  • %(thread)d 线程ID
  • %(threadName)s 线程名称
  • %(process)d 进程ID
  • %(message)s 记录的消息

内置处理器 handler

logging模块提供了一些处理器,可以通过各种方式处理日志消息。使用addHandler()方法将这些处理器添加给Logger对象。另外还可以为每个处理器配置它自己的筛选和级别。

  • handlers.DatagramHandler(host,port):发送日志消息给位于制定host和port上的UDP服务器。
  • handlers.FileHandler(filename):将日志消息写入文件filename。
  • handlers.HTTPHandler(host, url):使用HTTP的GET或POST方法将日志消息上传到一台HTTP 服务器。
  • handlers.RotatingFileHandler(filename):将日志消息写入文件filename。如果文件的大小超出maxBytes制定的值,那么它将被备份为filename1。

由于内置处理器还有很多,如果想更深入了解。可以查看官方手册。

现在大概了解了logging的使用方法,现在可以结合前面的例子使用。







 

django 加日志

标签:调用   模块名   ica   att   post   lin   线程   pytho   打开文件   

原文地址:https://www.cnblogs.com/lulin9501/p/11086952.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!