localdiskさんのツイートを見て「ServiceProvider書いてみよう!」と思ってやってみました。
Laravel で SQL だけ別ファイルにして Log 出したいんだけど、macro ないんよね。ServiceProvider書いて置き換えるのもな…。どうすべきでしょう?
— MATSUO Masaru (@localdisk) 2014, 6月 4
laravel.logに出すことなく別のLogに出すという感じみたいです。
ちなみにほとんどの部分をIlluminate/Logからパクりました(ぇ
やったこと
まずはIllminate/Logをフォルダごとコピーして、LogSqlと名称を変更。
その後、LogSqlの中にあるLogServiceProvider.phpをLogSqlServiceProvider.phpに改名。
改名後、中身を以下のように変更。
次にWriter.phpのnamespaceも変更ー。
で、app/config/app.phpのprovidersとaliasesも変更しましょー。
続いて、Illuminate/Support/Facades/Log.phpをコピーしてIlluminate/Support/Facades/LogSql.phpを作成して中身を変更ー。
あとは、app/start/global.phpでSQLのイベントをキャッチする仕組みとuseFilesを書けばおわりー。
このあと、php artisan clear-compiledするといいかも。
勉強になりました!
PHPフレームワーク完全マスター
posted with amazlet at 14.06.04
佐久嶋 ひろみ
メディアテック出版
売り上げランキング: 762,537
メディアテック出版
売り上げランキング: 762,537