Django logging(日志)配置

Django项目常用的logging配置。

LOGGING = {
    ‘version‘: 1,
    ‘disable_existing_loggers‘: False,
    ‘formatters‘: {
        ‘standard‘: {
            ‘format‘: ‘[%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name)s][%(filename)s:%(lineno)d]‘
                      ‘[%(levelname)s][%(message)s]‘
        },
        ‘simple‘: {
            ‘format‘: ‘[%(levelname)s][%(asctime)s][%(filename)s:%(lineno)d]%(message)s‘
        },
        ‘collect‘: {
            ‘format‘: ‘%(message)s‘
        }
    },
    ‘filters‘: {
        ‘require_debug_true‘: {
            ‘()‘: ‘django.utils.log.RequireDebugTrue‘,
        },
    },
    ‘handlers‘: {
        ‘console‘: {
            ‘level‘: ‘DEBUG‘,
            ‘filters‘: [‘require_debug_true‘],  # 只有在Django debug为True时才在屏幕打印日志
            ‘class‘: ‘logging.StreamHandler‘,
            ‘formatter‘: ‘simple‘
        },
        ‘default‘: {
            ‘level‘: ‘INFO‘,
            ‘class‘: ‘logging.handlers.RotatingFileHandler‘,  # 保存到文件,自动切
            ‘filename‘: os.path.join(BASE_LOG_DIR, "xxx_info.log"),  # 日志文件
            ‘maxBytes‘: 1024 * 1024 * 50,  # 日志大小 50M
            ‘backupCount‘: 3,
            ‘formatter‘: ‘standard‘,
            ‘encoding‘: ‘utf-8‘,
        },
        ‘error‘: {
            ‘level‘: ‘ERROR‘,
            ‘class‘: ‘logging.handlers.RotatingFileHandler‘,  # 保存到文件,自动切
            ‘filename‘: os.path.join(BASE_LOG_DIR, "xxx_err.log"),  # 日志文件
            ‘maxBytes‘: 1024 * 1024 * 50,  # 日志大小 50M
            ‘backupCount‘: 5,
            ‘formatter‘: ‘standard‘,
            ‘encoding‘: ‘utf-8‘,
        },
        ‘collect‘: {
            ‘level‘: ‘INFO‘,
            ‘class‘: ‘logging.handlers.RotatingFileHandler‘,  # 保存到文件,自动切
            ‘filename‘: os.path.join(BASE_LOG_DIR, "xxx_collect.log"),
            ‘maxBytes‘: 1024 * 1024 * 50,  # 日志大小 50M
            ‘backupCount‘: 5,
            ‘formatter‘: ‘collect‘,
            ‘encoding‘: "utf-8"
        }
    },
    ‘loggers‘: {
       # 默认的logger应用如下配置
        ‘‘: {
            ‘handlers‘: [‘default‘, ‘console‘, ‘error‘],  # 上线之后可以把‘console‘移除
            ‘level‘: ‘DEBUG‘,
            ‘propagate‘: True,
        },
        # 名为 ‘collect‘的logger还单独处理
        ‘collect‘: {
            ‘handlers‘: [‘console‘, ‘collect‘],
            ‘level‘: ‘INFO‘,
        }
    },
}

附:Python logger流示图

原文地址:https://www.cnblogs.com/dzf123456/p/9090095.html

时间: 2024-10-10 09:01:02

Django logging(日志)配置的相关文章

django 完整日志配置

django中的log需要在settings.py中配置 # log import time cur_path = os.path.dirname(os.path.realpath(__file__)) # log_path是存放日志的路径 log_path = os.path.join(os.path.dirname(cur_path), 'logs') if not os.path.exists(log_path): os.mkdir(log_path) # 如果不存在这个logs文件夹,就

Django的日志如何配置?

Django对于日志输出的信息是很完善的,request的信息,setting配置,trackback的信息,一应俱全,足够我们调试了.但是在线上环境,如果让用户看到这些信息,是很不安全的(暴露代码).所以在线上我们要关闭Debug,但是又不能扔掉这些调试信息,这就要用到logging模块. logging模块其实是Python的模块,在Django开发中有很多本地化的支持. 理解Logger 首先要理解logging的工作,这里面主要有四个东西:格式器formatter,过滤器filter,处

Django中日志管理

在settings中设置日志的相关信息,然后再逻辑代码区就可以保存相应的信息了 #简单设置: LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'handlers': { 'console':{ 'level':'DEBUG', 'class':'logging.StreamHandler', }, }, 'loggers': { 'django.db.backends': { 'handlers': ['console']

django 日志logging的配置以及处理

日志在程序开发中是少不了的,通过日志我们可以分析到错误在什么地方,有什么异常.在生产环境下有很大的用途.在Java开发中通常用log4j,logback等第三方组件.那么在django中是怎么处理日志?django利用的就是Python提供的logging模块,但django中要用logging,还得有一定的配置规则,需要在setting中设置. logging模块 logging模块为应用程序提供了灵活的手段记录事件.错误.警告和调试信息.对这些信息可以进行收集.筛选.写入文件.发送给系统日志

[转]django 日志logging的配置以及处理

http://davidbj.blog.51cto.com/4159484/1433741 日志在程序开发中是少不了的,通过日志我们可以分析到错误在什么地方,有什么异常.在生产环境下有很大的用途.在Java开发中通常用log4j,logback等第三方组件.那么在django中是怎么处理日志?django利用的就是Python提供的logging模块,但django中要用logging,还得有一定的配置规则,需要在setting中设置. logging模块 logging模块为应用程序提供了灵活

django 1.8 日志配置

以下为setings配置logging代码片段 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) LOGDIR = os.path.join(BASE_DIR, "logs") LOGFILE = datetime.datetime.now().strftime("%Y-%m-%d") + ".log" if not os.path.exists(LOGD

MyBatis应用开发(6)日志之日志配置

1. 日志 1.1. 日志配置 MyBatis的总体配置文件中可以通过setting配置所采用的日志输出途径,也可以配置为不输出日志. logImpl:配置MyBatis使用的日志实现方式.可以选的方式:SLF4J.LOG4J.LOG4J2.JDK_LOGGING.COMMONS_LOGGING.STDOUT_LOGGING.NO_LOGGING.也可以是实现了org.apache.ibatis.logging.Log接口的类的全限定名. <configuration> <!-- 配置参

Tomcat日志配置

1.Log4j日志配置 ①log4j代替tomcat自身的log 如果想用log4j来详细的打印出 tomcat的log,用下面的方法可以做到首先,将common-logging和log4j的包放入tomat/common/lib下然后将log4j.properties文件放入tomcat/common/classes下 ②根据日志不同级别,进行配置输出 配置文件: ### set log levels ###log4j.rootLogger = debug ,  stdout ,  D , 

Common.Logging log4net Common.Logging.Log4Net 配置

1.log4net 单独配置 log4net支持多种格式的日志输出,我这里只配置输出到本地的txt文件这种格式. <log4net> <root> <appender-ref ref="RollingFileAppender" /> </root> <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppende

[译]Stairway to Integration Services Level 12 - 高级日志配置

介绍 本文中,我们将结合之前学习的时间冒泡,日志记录,以及复制模型.建立一个自定义的SSIS包日志模型. SSIS Task事件回顾    Reviewing SSIS Task Events 在做实验之前我们更改一下 Precedence.dtsx SSIS 包的设置. 把 Precedence.dtsx SSIS 包的 DisableEventHandlers 属性改为True Figure 2 屏蔽内置日志   Disable Built-In Logging 首先我们要移除已经存在的日志