Django 如何使用logging打印日志
2017-07-15 18:33
375 查看
Django使用python自带的logging 作为日志打印工具。简单介绍下logging。
logging 是线程安全的,其主要由4部分组成:
Logger
用户使用的直接接口,将日志传递给Handler
Handler
控制日志输出到哪里,console,file…
一个logger可以有多个Handler
Filter
控制哪些日志可以从logger流向Handler
Formatter
控制日志的格式
用户使用logging.getLogger([name])获取logger实例。
如果没有名字,返回logger层级中的根logger(root logger)。以相同名字调用该函数总是返回同一个logger实例。这意味着logger实例不需要在应用的各个部分之间传来传去。
Django通过在settings文件中使用LOGGING来定制日志输出(包括定义logger, handler, formatter等)
例如,settings文件中定义如下:
代码中打印日志:
[2017-07-15 17:44:51,316] [ERROR] This is an error msg
这样,日志就被打印到终端和文件。
关于django logging 想了解更多,可参考官网
https://docs.djangoproject.com/en/1.11/topics/logging/
logging 是线程安全的,其主要由4部分组成:
Logger
用户使用的直接接口,将日志传递给Handler
Handler
控制日志输出到哪里,console,file…
一个logger可以有多个Handler
Filter
控制哪些日志可以从logger流向Handler
Formatter
控制日志的格式
用户使用logging.getLogger([name])获取logger实例。
如果没有名字,返回logger层级中的根logger(root logger)。以相同名字调用该函数总是返回同一个logger实例。这意味着logger实例不需要在应用的各个部分之间传来传去。
Django通过在settings文件中使用LOGGING来定制日志输出(包括定义logger, handler, formatter等)
例如,settings文件中定义如下:
LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'formatters': { 'verbose': { 'format': '[%(asctime)s] [%(levelname)s] %(message)s' }, }, 'handlers': { 'console':{ 'level':'INFO', 'class':'logging.StreamHandler', 'formatter': 'verbose' }, 'file': { 'level': 'INFO', 'class': 'logging.FileHandler', 'filename': 'D:/monitor.log', 'formatter': 'verbose' }, 'email': { 'level': 'ERROR', 'class': 'django.utils.log.AdminEmailHandler', 'include_html' : True, } }, 'loggers': { 'django': { 'handlers': ['console', 'file', 'email'], 'level': 'INFO', 'propagate': True, }, }, }
代码中打印日志:
logger = logging.getLogger(‘django’) logger.info(“This is an error msg”)
[2017-07-15 17:44:51,316] [ERROR] This is an error msg
这样,日志就被打印到终端和文件。
关于django logging 想了解更多,可参考官网
https://docs.djangoproject.com/en/1.11/topics/logging/
相关文章推荐
- Django 使用logging打印日志的实例
- maven 1.x plugin无法输出使用commongs-logging打印的日志
- spring 中使用 logback打印日志,替换其他日志如log4j,commons-logging
- 使用common-logging与log4j打印日志,发现版本冲突
- 在Java项目中如何使用log4j和slf4j实现日志打印
- 【Django】Django 如何使用 Django设置的日志?
- 使用commons-logging与slf4j打印日志
- Python中使用logging模块打印log日志详解
- 使用common-logging与log4j打印日志,发现版本冲突
- 如何使用myeclipse打印GC日志
- 如何使用java.util.logging中的Logger来记录日志
- 如何使用JLink:RTT打印调试日志
- 使用python logging 模块将日志打印到Logstash
- 如何控制使用thymeleaf不在控制台打印日志
- 系统日志处理系列 (一)如何使用logging、commons-logging、log4j输出日志
- logback框架使用误区 如何将所有包的ERROR级别日志集中打印到一个日志文件中
- Django 中使用 logging 模块记录系统日志
- Apache Commons Logging 是如何决定使用哪个日志实现类的
- python 日志打印之logging使用介绍
- JAVA中使用commons-logging和log4j打印日志