3

ここで私を助けてください。本当に明白な何かが欠けているに違いありません。

Heroku で Padrino アプリを実行しています。boot.rb の に渡されたブロックPadrino.before_loadには、次の行があります。

Padrino::Logger::Config[:production][:log_level] = :info
Padrino::Logger::Config[:production][:stream] = :stdout

beforeapp.rbのブロックには、logger.info全体に散らばる呼び出しがあります。

これは、私の開発マシンでは標準出力に問題なく記録されます。しかし、Heroku のログを確認すると:

heroku logs -t -s app

...何も表示されません (Thin サーバーからの起動情報の最初の 3 行のみ)。

私は何が欠けていますか?


culixに対するいくつかの明確化のポイント:

  1. アプリの起動後に切り替えてheroku logs -s appも、何も変わりません。
  2. Papertrailをインストールしてみました。これは実際にはかなりいいですね!しかし、探しているログ メッセージがまだありません。
  3. それは良い質問です!私は本当にブロック内でを呼び出しました。この質問の更新が完了したら、ログを追加して確認します。logger.infobefore
  4. あなたが尋ねると、「本番」での実行に切り替えたときに、私のアプリは何もログに記録していないようです(database.rbを開発DBを指すように変更した後)。これは、基本的に Padrino のロギングを正しく構成していないことを意味していると思います。この質問をしてくれてありがとう!
  5. 最新の boot.rb がコミットされます。
  6. いいえ、(意図的に) stdout をいじることは決してありません。

明らかに、最初に時間をかけて調査する必要があるのは、上記の #4 です。それが私が今することです。そして、何も得られない場合は、#3 に進みます。

4

1 に答える 1

2

基本を確実にカバーするための簡単な質問を次に示します。

  1. heroku logs -tアプリの起動前または起動後に実行していますか? その後までそれを実行していない場合、-tスイッチをドロップして実行するとheroku logs -s app何かが表示されますか?

  2. アプリに追加されたsyslog ドレイン アドオンはありますか? もしそうなら、彼らは何かを表示しますか? そうでない場合は、追加してアプリを再度実行してみてください。ログの詳細はドレインに表示されますか?

  3. heroku にデプロイした後、アプリの Web サイトにアクセスしてアプリのページを実行すると、他のアクティビティからの出力がログまたは syslog ドレインに表示されますか? つまり、これがherokuのサーバーで実行されているときのアプリのすべてのロギングの問題なのか、beforeセクションのロギングの問題だけなのかを確認できますか?

  4. ローカル マシンで実行している場合でも、アプリは にログを記録し:productionますか、それとも別の場所にログを記録しますか? つまり、あなたのアプリは、heroku マシンで実行するときと同じことをローカルで実行していますか? デプロイしたアプリは、別の Padrino ロギング環境として実行するように設定されましたか?

  5. boot.rb ファイルの最新バージョンは、heroku にプッシュしている git リポジトリにコミットされていますか? 適切なディレクトリで実行するheroku run lsと、heroku Web dyno でファイルを確認できますか?

  6. 最後の手段として、stdout を台無しにしたり、出力または print ステートメントを別の場所にリダイレクトしたり、何かを行ったりしていませんか?

于 2012-08-29T23:06:12.260 に答える