Hi guys,
I'm using the python built-in logging module in a django project. Using
dictConfig, the configuration in settings.py is like this:
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'mail_admins': {
'level': 'ERROR',
'class': 'django.utils.log.AdminEmailHandler'
},
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'verbose'
},
'logfile': {
'level': 'DEBUG',
'class': 'logging.handlers.RotatingFileHandler',
'filename': os.path.join(ROOT_DIR(), 'django.log'),
'maxBytes': 1024 * 1024 * 10,
'backupCount': 5,
'formatter': 'verbose',
},
}
'formatters': {
'verbose': {
'format':
'######################################################################\n'
'%(levelname)s | %(asctime)s | %(process)s |
%(module)s | %(name)s.%(funcName)s:%(lineno)d | \n%(message)s',
'datefmt': '%Y-%m-%d %H:%M:%S',
},
'simple': {
'format': '%(levename)s | %(asctime)s | %(message)s'
},
},
'loggers': {
'django': {
'handlers': ['console', 'logfile'],
'level': 'INFO',
},
'django.request': {
'handlers': ['console', 'mail_admins'],
'level': 'ERROR',
'propagate': False
},
'project_name': {
'handlers': ['console', 'logfile'],
'level': 'DEBUG',
'propagate': True,
},
'utility': {
'handlers': ['console', 'logfile'],
'level': 'DEBUG',
'propagate': True,
},
}
}
LOGGING_CONFIG = None
import logging.config
logging.config.dictConfig(LOGGING)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
And I use logger = logging.getLogger(__name__) in the code under
'project_name' module.
And I find it causes huge memory leak problem, the memory usage keeps
growing and never goes down.
if I replace the logger.info() part with a simple print() function, the
memory usage is small and stable, so I guess it's the logging module that
should to blame.
But it's a core python built-in module, I don't think there is a huge
memory leak problem without others point it out.
The only useful infomation of google results I found is
https://www.codeday.top/2017/02/10/12540.html
So I used objgraph to detect if the Logger type numbers kept growing, but
the result suggested that no obvious leaking types.
I've been in this situation for almost a week, and still can't work it out.
Anyone can give me some hints on this?
Thanks!
YP
--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-users/28172cbd-ce76-499e-a2c1-38eb9af6c0b4%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.