やっていたこと
Linebotを作っていた。
Herokuにデプロイしたのに
heroku logs --tail
でログを確認しても、
2022-07-28T15:05:10.293176+00:00 app[web.1]: 10.1.22.37 - - [28/Jul/2022:15:05:10 +0000] "POST /callback/ HTTP/1.1" 500 0 "-" "-"
2022-07-28T15:05:10.292759+00:00 heroku[router]: at=info method=POST path="/callback/" host=hogehoge.herokuapp.com request_id=xxx3eb fwd="111.11.111.111" dyno=web.1 connect=0ms service=12ms status=500 bytes=244 protocol=https
みたいなエラーが出て原因がわからなかった。
ググって原因にありそうなものを確認して行った。
- 環境変数よめている?かをprint()で確認とか
- DBの設定がおかしいのか?(使っていないのにな)とか
- whitenoise?APIだから表示ページはないんだけれど。とか
エラーを詳細に表示すれば解決するんじゃないか?
当たり前のことに気がつき、ググっていると
https://stackoverflow.com/questions/45391082/heroku-server-error-500-when-debug-false-whitenoise-could-not-find-style-c
この記事に、下記コードをsettings.pyに追加しろと書いてありました。
settings.py
以上略...
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'console': {
'class': 'logging.StreamHandler',
},
},
'loggers': {
'django': {
'handlers': ['console'],
'level': os.getenv('DJANGO_LOG_LEVEL', 'DEBUG'),
},
},
}
これを書くことで、heroku logs --tailにlocalのときのようなエラーが表示されました。
中身はよくわかりません。
自分の原因
アクセストークンを変更したのに、Herokuに反映できていませんでした。
webのHerokuのConfigVarsから変更しようと、現行のVALUE部分に貼り付けただけで満足していました。
右側の鉛筆ボタンから編集しないといけません。