かなり大きなデータインポートスクリプト(Symfony "Commands")があり、Monologのメモリ不足が原因でエラーが発生しています(58行目のvendor \ monolog \ src \ Monolog \ Formatter \ LineFormatter.php)。一般的にMonologを使用しているため、完全に無効にしたくありません。
1396 次
2 に答える
4
これは古い質問だと思いますが、メモリから生成される長時間実行のMonologを使用するスクリプトで問題が発生したとき、問題はMonologの「fingers_crossed」ハンドラーが大量のログメッセージをバッファリングすることであることがわかりました。
問題のMonologハンドラーの「buffer_size」変数を設定することで問題を解決しました。このようなもの:
main:
type: fingers_crossed
action_level: info
buffer_size: 200
handler: nested
編集:コメントでSergioが指摘しているように、次buffer_size
のように設定します。
于 2013-02-20T15:50:59.573 に答える
1
製品環境ではDoctrineに問題があるので、ロガーに焦点を合わせても状況が改善されるとは思いません。ただし、への複数の呼び出しを使用して、ログハンドラーをスタックからポップすることを試みることができます$logger->popHandler()
。ログメッセージがスタックされているため、メモリが不足している可能性があります。
しかし、教義に問題がある可能性が高いです。
XHProfまたはXDebugを使用して、実際の問題がどこにあるかを確認してみます。スクリプトが一時的に失敗したからといって、それが問題の原因であるとは限りません(実際のメモリリークは別の場所にある可能性があります)。
于 2012-05-25T21:55:37.607 に答える