公開日:2019.12.19

FuelPHPでのクーロンログ

テクログphp

FuelでのログはView側では、

大本(言い方)try {} catch () {}でくくられているため、

基本全てのエラーが吐き出されるようになっています。

そして、タスク(cron)実行する際にもログが出てほしいな~

と思い、調べた結果です。

タスクの場合Fuelの本体とは別のロジックとなっており、

ログに吐き出すようにするには、コーダーさんが処理内に

try {} catch () {}などでくくらなければ

エラーを明示的に吐き出すことができませんでした。(なぜ・・・)

参考サイトとしてリンクを貼りますが(https://qiita.com/notona/items/b821ed0ad04ac3ef8f80)

以下のようなことが書かれておりました

~~~~~

php7 では一部のエラーが Error例外 として throw されるようになりました。

そのため Error と ErrorException がどちらも実装しているインターフェースになっている Throwable でキャッチする

~~~~~

ざっくりいうと、エラーを拾う(出力させる)ためには、タスク処理を

ごっそりと「try {} catch (Throwable $e) {}」でくくる必要がある。

もしくは、エラー出力としcronに設定する際に

0 0 1 * * [php path] [oil path] refine [task name] 2>> [output file name]`date +%Y%m%d`.log

のように、cronを設定する必要がある(この場合は try {} catch () {}の必要はない)

ただ、oil深くまで潜ると。。。。ありました!!

エラー時には、コンソールに表示させる記述が。

こいつを、オーバライドして、ログに吐き出されるようにすれば、

タスクが実行されて、try {} catch () {}でくくらなくても、うまくいく(はず)

※やって見る方は自己責任でお願いします。

この記事を書いた人

うみ

入社年2017年

出身地東京

業務内容開発業務

特技または趣味料理

うみの記事一覧へ

テクログに関する記事一覧