在 Django Heroku 应用程序中使用 print() 日志记录将信息记录到 Papertrail 的好处
Benefit of using logging over print() to log information to Papertrail in a Django Heroku app
我有一个 Django 应用程序,我在 Heroku 上托管并通过 Papertrail Heroku 附加组件登录到 Papertrail。我在很多地方直接将信息记录到 Papertrail,目前通过:
logger = logging.getLogger('papertrail')
logger.info('important text')
我根据this link设置日志配置:
import sys
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'console': {
'level': 'INFO',
'class': 'logging.StreamHandler',
'stream': sys.stdout,
},
},
'loggers': {
'django': {
'handlers': ['console'],
'level': 'ERROR',
},
'papertrail': {
'handlers': ['console'],
'level': 'INFO',
},
},
}
一起,这将像这样记录到 Papertrail:
Feb 07 06:10:56 app_name app/worker.1: important text
但是,我注意到在这里使用 print('important text')
可以完成同样的事情。在这种情况下继续使用 logging
而不是 print
来记录 "important text" 有什么好处吗?我通读了 this article,其中 none 似乎适用于此。
我发现自己有时会问这个问题,我通常会得出这样的结论:print
对调试很有用,但日志记录对其他一切都更强大。
例如,日志记录有日志级别,显示严重性。而且,日志记录允许将日志和输出、错误等写入文件。
出于这些原因以及更多原因,生产中的任何应用程序都应该有一个全面的日志系统。
通读一下,它应该会变得更清楚:
https://docs.djangoproject.com/en/1.10/topics/logging/
如果您不相信这个答案和您引用的文章,我建议您做更多的研究。否则,继续使用 print
,也许您最终会说服自己。
我有一个 Django 应用程序,我在 Heroku 上托管并通过 Papertrail Heroku 附加组件登录到 Papertrail。我在很多地方直接将信息记录到 Papertrail,目前通过:
logger = logging.getLogger('papertrail')
logger.info('important text')
我根据this link设置日志配置:
import sys
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'console': {
'level': 'INFO',
'class': 'logging.StreamHandler',
'stream': sys.stdout,
},
},
'loggers': {
'django': {
'handlers': ['console'],
'level': 'ERROR',
},
'papertrail': {
'handlers': ['console'],
'level': 'INFO',
},
},
}
一起,这将像这样记录到 Papertrail:
Feb 07 06:10:56 app_name app/worker.1: important text
但是,我注意到在这里使用 print('important text')
可以完成同样的事情。在这种情况下继续使用 logging
而不是 print
来记录 "important text" 有什么好处吗?我通读了 this article,其中 none 似乎适用于此。
我发现自己有时会问这个问题,我通常会得出这样的结论:print
对调试很有用,但日志记录对其他一切都更强大。
例如,日志记录有日志级别,显示严重性。而且,日志记录允许将日志和输出、错误等写入文件。
出于这些原因以及更多原因,生产中的任何应用程序都应该有一个全面的日志系统。
通读一下,它应该会变得更清楚:
https://docs.djangoproject.com/en/1.10/topics/logging/
如果您不相信这个答案和您引用的文章,我建议您做更多的研究。否则,继续使用 print
,也许您最终会说服自己。