リスティング広告代行の専門会社|Yahoo!プロモーション広告・Google AdWords完全対応|東京・大阪・名古屋

Monolog – finger_crossed


MonologはSymfony2でも利用されているロガーライブラリです。

そのMonologでfingers_crossedがよく出来ていたので、Symfonyの設定から見てみましょう。

app/config/config_dev.yml

[js]
monolog:
handlers:
main:
type: stream
path: %kernel.logs_dir%/%kernel.environment%.log
level: debug
[/js]

これは開発環境用の設定ファイルなので、debugレベル以上のログは全てpathで指定されているファイルに出力されるといった感じです。
普通ですね。

次に運用環境用を見てみましょう。

app/config/config_prod.yml

[js]
monolog:
handlers:
main:
type: fingers_crossed
action_level: error
handler: nested
nested:
type: stream
path: %kernel.logs_dir%/%kernel.environment%.log
level: debug
[/js]

nestedはconfig_dev.ymlのものと一緒ですが、type: finger_crossed の設定が増えています。
この設定場合、errorレベル未満のログは常に出力されませんが
errorレベル以上のログが出力された場合、debug以上のログも同時に出力されます。

FingersCrossedHandler: A very interesting wrapper. It takes a logger as parameter and will accumulate log records of all levels until a record exceeds the defined severity level. At which point it delivers all records, including those of lower severity, to the handler it wraps. This means that until an error actually happens you will not see anything in your logs, but when it happens you will have the full information, including debug and info records. This provides you with all the information you need, but only when you need it.
https://github.com/Seldaek/monolog#wrappers--special-handlers

finger_crossedを使う事によって、ログファイルサイズの肥大化を防ぎつつ
デバッグ時の詳細な情報は保存するといういいとこ取りができますのでおすすめです。

 



業界初のリスティング広告運用総合支援ツール Lisket(リスケット)

無料メルマガ

登録はたったの5秒!一週間分のコラムを毎週月曜にメールでお届けします。

Facebookもチェック