django的logging模块 自定义日子记录
1.在settings使用例子
LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'formatters': { 'simple': { # exact format is not important, this is the minimum information 'format': '%(asctime)s %(name)-12s %(lineno)d %(levelname)-8s %(message)s', }, }, 'handlers': { 'console': { 'class': 'logging.StreamHandler', 'formatter': 'simple', }, 'mail_admins': { # Add Handler for mail_admins for `warning` and above 'level': 'ERROR', 'class': 'django.utils.log.AdminEmailHandler', }, 'file': { #'level': 'INFO', 'class': 'logging.FileHandler', 'formatter': 'simple', 'filename': os.path.join(os.path.dirname(BASE_DIR), 'recruitment.admin.log'), }, 'performance': { #'level': 'INFO', 'class': 'logging.FileHandler', 'formatter': 'simple', 'filename': os.path.join(os.path.dirname(BASE_DIR), 'recruitment.performance.log'), }, }, 'root': { 'handlers': ['console', 'file'], 'level': 'INFO', }, 'loggers': { "django_python3_ldap": { "handlers": ["console", "file"], "level": "DEBUG", }, "interview.performance": { "handlers": ["console", "performance"], "level": "INFO", "propagate": False, }, }, }
2.在myrecrument/interview/admin.py
logger = logging.getLogger(__name__)
def my_fun(self):
logger.info('user: %s ,exported %s candicate records'%(request.user,len(queryset)))
###logger = logging.getLoger(__name__) ---> __name__ 当前脚本的名字
3.日志的输出
[12/Jan/2021 17:39:56] "GET /admin/jsi18n/ HTTP/1.1" 200 3187 2021-01-12 17:40:09,665 interview.admin 42 INFO user: admin ,exported 3 candicate records
用一个例子来演示会更加清晰