首页 > 其他分享 >django + gunicorn部署,日志丢失解决方法

django + gunicorn部署,日志丢失解决方法

时间:2022-10-15 21:11:48浏览次数:47  
标签:log level handlers django debug 日志 gunicorn

近期部署了一个项目,使用的是django开发,服务器是centos7,宝塔+python项目管理器

使用项目管理器新建项目,会自动配置虚拟环境,安装库,启动项目,非常不错方便

项目采用gunicorn方式部署,题高服务性能

部署后发现一个问题,日志那边看不到网站的日志,只有gunicorn的日志,网上查了下资料,说是logging的问题,会导致日志丢失的问题

以下是解决方法

在setting.py末尾添加如下代码

LOG_PATH = os.path.join(BASE_DIR, 'logs')
if not os.path.exists(LOG_PATH):
    os.makedirs(LOG_PATH, exist_ok=True)

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'root': {
        'level': 'INFO',
        'handlers': ['console', 'log_file'],
    },
    'formatters': {
        'verbose': {
            'format': '[%(asctime)s] %(levelname)s [%(name)s.%(funcName)s:%(lineno)d %(module)s] %(message)s',
        }
    },
    'filters': {
        'require_debug_false': {
            '()': 'django.utils.log.RequireDebugFalse',
        },
        'require_debug_true': {
            '()': 'django.utils.log.RequireDebugTrue',
        },
    },
    'handlers': {
        'log_file': {
            'level': 'INFO',
            'class': 'logging.handlers.TimedRotatingFileHandler',
            'filename': os.path.join(LOG_PATH, 'info.log'),
            'when': 'D',
            'formatter': 'verbose',
            'interval': 1,
            'delay': True,
            'backupCount': 5,
            'encoding': 'utf-8'
        },
        'console': {
            'level': 'DEBUG',
            'filters': ['require_debug_true'],
            'class': 'logging.StreamHandler',
            'formatter': 'verbose'
        },
        'null': {
            'class': 'logging.NullHandler',
        },
        'mail_admins': {
            'level': 'ERROR',
            'filters': ['require_debug_false'],
            'class': 'django.utils.log.AdminEmailHandler'
        }
    },
    'loggers': {
        'djangoblog': {
            'handlers': ['log_file', 'console'],
            'level': 'INFO',
            'propagate': True,
        },
        'django.request': {
            'handlers': ['mail_admins'],
            'level': 'ERROR',
            'propagate': False,
        }
    }
}

  如此日志就记录到了logs/info.log内

标签:log,level,handlers,django,debug,日志,gunicorn
From: https://www.cnblogs.com/darkspr/p/16795036.html

相关文章

  • Django 两种访问图片的方式
    访问方式:在settings.py文件中最底部配置STATIC_URL='/static/'STATIC_ROOT=os.path.join(BASE_DIR,'collected_static')在浏览器输入https://host:port/static/i......
  • Django ORM QuerySet转json
    下面是Django中两种常用的ORM查询models.Component.objects.filter(...).all()models.Component.objects.values(...)第一种我们可以使用serializers.serialize("json",c......
  • Flask 学习-91.使用 gunicorn 部署 flask
    前言flask启动访问平常开发的时候可以用命令行flaskrun运行,正式部署到线上环境不会这样用。Gunicorn环境准备Web框架致力于如何生成HTML代码,而Web服务器用于处理和响......
  • SpringBoot Logback统一日志处理
    一、日志 1、配置日志级别日志记录器(Logger)的行为是分等级的。如下表所示:分为:OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL默认情况下,springboot从控制台打印出来的......
  • Linux文件系统与日志分析
    inode和block概述文件数据包括元信息与实际数据。文件存储在硬盘上,硬盘最小存储单位是“扇区”,每个扇区存储512字节。block(块)连续的八个扇区组成一个block是文件存......
  • 在docker应用中安装python3环境,运行程序,输出日志时间比本地时间慢8小时
    根据排查原因是docker容器时间以0时区为准,中国在东8区,因此输出时间比中国时间慢了8小时解决方法一:1:首先,进入docker应用中dockerexec-it-urootjenkinsbash说明:使......
  • django seed模型生成测试数据
     安装要安装djangoseed,请使用pip:pipinstalldjango-seed或从源安装:pythonsetup.pyinstall配置将其添加到settings.py:中已安装的应用程序中INSTALLED_A......
  • ELK 不香了?试试接入这款更轻量的日志框架,真的很省心!
    当我们公司内部部署很多服务以及测试、正式环境的时候,查看日志就变成了一个非常刚需的需求了。是多个环境的日志统一收集,然后使用Nginx对外提供服务,还是使用专用的日志收......
  • SpringBoot之Logback 日志文件配置
    Logback概述Logback是由log4j的创始人设计的另一个开源的日志组件,官方网站是:http://logback.qos.ch。它当前分为下面下个模块:logback-core:其他两个模块的基础模块l......
  • Linux文件系统与日志分析详解
    一、inode(索引节点/i节点)与block(块)1.inode与block的概念1.1什么是block?文件储存在硬盘上的,硬盘最小的存储单位叫“扇区”,每个扇区存储512个字节一般连续8个扇区会组......