自分で設定してみると、如何に色んなことが解ってなかったか解りますね。誰かが作ったシステムで設定とか知らなくても、その上で動くアプリケーションを書ければそれはそれで問題ないからなぁ。
…と言うわけで表題の件。
dev環境ではログが書き出されるけど、prod環境ではログが書き出されないので、おかしいなぁと思って設定を見直したけどどうしたらいいか解らず。で、ドキュメント読んだら書いてありました。
1. setting.ymlのlogging_enabledをtrueに
デフォルトではprod以外のすべての環境ではtrue、prod環境ではfalseになっています。setting.yml
prod:
.settings:
no_script_name: false
logging_enabled: false
logging_enabledの行をコメントアウト。
2. factories.ymlで使用するloggerを設定。
デフォルトでは、prod以外の環境ではsfAggregateLoggerを使用していますが、prod環境のみsfNoLogger(ダミー的なクラス?)を使用しています。prod:
logger:
class: sfNoLogger
param:
level: err
loggers: ~
というわけでこれをコメントアウトすれば、全てのエラー(デフォルトではdebugレベルで設定されている)がログとして書き出されます。errレベルだけで良ければ、これで。
prod:
logger:
param:
level: err
注意
ドキュメントには、logging_enabled 設定はロギングサブフレームワークを有効にします。この設定を false にセットすれば、ロギングメカニズムが回避され、パフォーマンスが少し向上します。
とあるので、何でもかんでもログを吐けばよいと言うことでもなさそう。
どれくらいパフォーマンスに影響があるかはよく解りませんけども。
ていうか、1.0系にあったlogging.ymlはなくなったのね?
参考
それ以外の設定については、ドキュメント参照のこと。The symfony Reference Book | symfony | Web PHP Framework
The symfony Reference Book | settings.yml 設定ファイル | symfony | Web PHP Framework
The symfony Reference Book | factories.yml 設定ファイル | symfony | Web PHP Framework
これよく読んだ方が良いなぁ。