Django log log module does not work properly, logging information

background description:

deploy using gunicorn + django + nginx,

info.log and error.log,warn.log are automatically created in the specified directory

Log information can be displayed normally on the screen

No previous log file write information

use runserver to start the service, and the log can be written normally

import os


BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
BASE_LOG_DIR = os.path.join(BASE_DIR, "log")

LOGGING = {
    "version": 1, 
    "disable_existing_loggers": False,  
    "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": {
        -sharp deubg=True
        "require_debug_true": {
            "()": "django.utils.log.RequireDebugTrue",
        },
    },
  
    "handlers": {
       
        "console": {
            "level": "DEBUG",
            "filters": ["require_debug_true"],  
            "class": "logging.StreamHandler", 
            "formatter": "simple"
        },
        
        "default": {
            "level": "INFO",
            "class": "logging.handlers.RotatingFileHandler", 
            "filename": os.path.join(BASE_LOG_DIR, "info.log"), 
            "maxBytes": 1024 * 1024 * 50,  
            "backupCount": 5, 
            "formatter": "standard",
            "encoding": "utf-8",
        },

        "warn": {
            "level": "WARN",
            "class": "logging.handlers.RotatingFileHandler",  
            "filename": os.path.join(BASE_LOG_DIR, "warn.log"),  
            "maxBytes": 1024 * 1024 * 50,  
            "backupCount": 5,
            "formatter": "standard",
            "encoding": "utf-8",
        },

        "error": {
            "level": "ERROR",
            "class": "logging.handlers.RotatingFileHandler",  
            "filename": os.path.join(BASE_LOG_DIR, "error.log"), 
            "maxBytes": 1024 * 1024 * 50, 
            "backupCount": 5,
            "formatter": "error",
            "encoding": "utf-8",
        },
    },

    "loggers": {
        "": {
            "handlers": ["default", "warn", "error"],  
            "level": "DEBUG",
            "propagate": True,  
        },
        "collect": {
            "handlers": ["console", "default", "warn", "error"],
            "level": "INFO",
        }
    },
}

setting.py

from logger import LOGGING

views.py

import logging


logger = logging.getLogger(__name__)

class RandomImagination(APIView):
    def post(self, request):
        logger.info(u":{} id:{}".format(request.path, user_id, result_dict["msg"]))
        return Response({"status":100})
Mar.28,2021

for solutions, please refer to http://www.chenxm.cc/post/623.

.
MySQL Query : SELECT * FROM `codeshelper`.`v9_news` WHERE status=99 AND catid='6' ORDER BY rand() LIMIT 5
MySQL Error : Disk full (/tmp/#sql-temptable-64f5-1e4c209-43e03.MAI); waiting for someone to free some space... (errno: 28 "No space left on device")
MySQL Errno : 1021
Message : Disk full (/tmp/#sql-temptable-64f5-1e4c209-43e03.MAI); waiting for someone to free some space... (errno: 28 "No space left on device")
Need Help?