Django日志设置

django日志

django中的log需要在settings.py中配置

LOGGING = {
                'version': 1,  # 保留的参数,默认是1
                'disable_existing_loggers': False,  # 是否禁用已经存在的logger实例
                # 日志输出格式的定义
                'formatters': {
                    'standard': {  # 标准的日志格式化
                        'format': '%(levelname)s %(asctime)s %(module)s %(message)s'
                    },
                    'error': {  # 错误日志输出格式
                        'format': '%(levelname)s %(asctime)s %(pathname)s %(module)s %(message)s'
                    },
                    'simple': {
                        'format': '%(levelname)s %(asctime)s %(message)s'
                    },
                    'collect': {
                        'format': '%(message)s'
                    }
                },
                # 过滤器
                'filters': {
                    'require_debug_true': {
                        '()': 'django.utils.log.RequireDebugTrue',
                    },  # 针对 DEBUG = True 的情况
                },
                # 处理器:需要处理什么级别的日志及如何处理
                'handlers': {
                    # 将日志打印到终端
                    'console': {
                        'level': 'DEBUG',  # 日志级别
                        'class': 'logging.StreamHandler',  # 使用什么类去处理日志流
                        'formatter': 'simple'  # 指定上面定义过的一种日志输出格式
                    },
                    # 默认日志处理器
                    'default': {
                        'level': 'DEBUG',
                        'class': 'logging.handlers.RotatingFileHandler',  # 保存到文件,自动切
                        'filename': "default.log",  # 日志文件路径
                        'maxBytes': 1024 * 1024 * 100,  # 日志大小 100M
                        'backupCount': 5,  # 日志文件备份的数量
                        'formatter': 'standard',  # 日志输出格式
                        'encoding': 'utf-8',
                    },
                    # 日志处理级别warn
                    'warn': {
                        'level': 'WARN',
                        'class': 'logging.handlers.RotatingFileHandler',  # 保存到文件,自动切
                        'filename':  "warn.log",  # 日志文件路径
                        'maxBytes': 1024 * 1024 * 100,  # 日志大小 100M
                        'backupCount': 5,  # 日志文件备份的数量
                        'formatter': 'standard',  # 日志格式
                        'encoding': 'utf-8',
                    },
                    # 日志级别error
                    'error': {
                        'level': 'ERROR',
                        'class': 'logging.handlers.RotatingFileHandler',  # 保存到文件,自动切
                        'filename': "error.log",  # 日志文件路径
                        'maxBytes': 1024 * 1024 * 100,  # 日志大小 100M
                        'backupCount': 5,
                        'formatter': 'error',  # 日志格式
                        'encoding': 'utf-8',
                    },
                    'request_handler': {
                        'level': 'DEBUG',
                        'class': 'logging.handlers.RotatingFileHandler',
                        'filename': "request.log",
                        'maxBytes': 1024 * 1024 * 5,
                        'backupCount': 5,
                        'formatter': 'standard',
                    },
                    'scripts_handler': {
                        'level': 'DEBUG',
                        'class': 'logging.handlers.RotatingFileHandler',
                        'filename':  "script.log",
                        'maxBytes': 1024 * 1024 * 5,
                        'backupCount': 5,
                        'formatter': 'standard',
                    }
                },
                'loggers': {
                    # 默认的logger应用如下配置
                    'default': {
                        'handlers': ['console','default', 'warn', 'error'],
                        'level': 'DEBUG',
                        'propagate': True,  # 如果有父级的logger示例,表示不要向上传递日志流
                    },
                    'collect': {
                        'handlers': ['default', 'warn', 'error'],
                        'level': 'INFO',
                    },
                    'django': {
                        'handlers': ['console','default', 'warn', 'error'],
                        'level': 'INFO',
                        'propagate': False
                    },
                    'django.request':{
                        'handlers': ['request_handler'],
                        'level': 'INFO',
                        'propagate': False,
                    },
                    'scripts': {
                        'handlers': ['scripts_handler'],
                        'level': 'INFO',
                        'propagate': False
                    },
                    'django.db.backends': {
                        'handlers': ['default', 'warn', 'error'],
                        'propagate': True,
                        'level': 'DEBUG',
                    },

                },
            }

需要用的地方加入下面代码:
import logging
logger = logging.getLogger(‘django’)

def test():
logger.info('info occured ')
logger.error(‘error occured’)
logger.warning(‘warning occured’)

发布了3 篇原创文章 · 获赞 0 · 访问量 44
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 数字20 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览