区分不同的日志等级是我们在Django开发过程中最常用的日志输出方法。下面是使用Python logging模块进行日志输出的完整攻略,包括代码示例。
步骤1:在Django配置文件中配置logging模块
在settings.py文件中进行下列配置:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'file': {
'class': 'logging.handlers.RotatingFileHandler',
'filename': BASE_DIR + "/logs/django.log",
'maxBytes': 1024 * 1024 * 5,
'backupCount': 5,
'formatter': 'verbose'
},
'console': {
'class': 'logging.StreamHandler',
'formatter': 'verbose'
},
},
'formatters': {
'verbose': {
'format': '[%(asctime)s] %(levelname)s [%(module)s %(process)d %(thread)d %(message)s]',
'datefmt': '%Y-%m-%d %H:%M:%S'
},
'simple': {
'format': '%(levelname)s %(message)s'
},
},
'loggers': {
'django': {
'handlers': ['file', 'console'],
'level': 'DEBUG',
},
'django.request': {
'handlers': ['file', 'console'],
'level': 'DEBUG',
'propagate': True,
},
'myapp': {
'handlers': ['file', 'console'],
'level': 'DEBUG',
'propagate': True,
},
}
}
该配置在Logging字典的各个部分,将使用哪几种级别日志输出写入了配置文件中。
步骤2:将logging模块作为实用工具使用于视图函数等代码中
在views.py文件(或其它需要进行日志输出的代码文件)中,将日志记录器作为实用工具使用:
import logging
logger = logging.getLogger('myapp')
def index(request):
logger.debug('This is a debug message')
logger.info('This is an information message')
logger.warning('This is a warning message')
logger.error('This is an error message')
logger.critical('This is a critical message')
context = {}
return render(request, 'index.html', context)
使用Django日志记录器输出的示例:
logger.debug('This is a debug message')
logger.info('This is an information message')
logger.warning('This is a warning message')
logger.error('This is an error message')
logger.critical('This is a critical message')
以上两行代码将产生5个级别的日志输出,分别为DEBUG(调试)、INFO(信息)、WARNING(警告)、ERROR(错误)、CRITICAL(严重错误)。
步骤3:查看日志输出
Django的日志消息将会保存在日志文件中,如果我们将handlers配置的文件句柄为console,则同样会在控制台中输出日志消息。如果想查看日志消息,可以使用以下命令:
tail -f 路径/<appname>.log
例如,在Django应用名称为myapp的情况下,要查看myapp日志文件中的输出日志,请执行:
tail -f 路径/myapp.log
以上日志文件中将输出所有myapp应用中输出的日志消息。
示范效果:
以下是一个示例日志输出内容:
[2019-04-17 14:54:19] DEBUG [myapp.views 18304 123145591207680] This is a debug message
[2019-04-17 14:54:19] INFO [myapp.views 18304 123145591207680] This is an information message
[2019-04-17 14:54:19] WARNING [myapp.views 18304 123145591207680] This is a warning message
[2019-04-17 14:54:19] ERROR [myapp.views 18304 123145591207680] This is an error message
[2019-04-17 14:54:19] CRITICAL [myapp.views 18304 123145591207680] This is a critical message
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Django开发中的日志输出的方法 - Python技术站