私はsymfony 3.2プロジェクトを持っており、設定可能なディレクトリにログインしたいと思っています。このディレクトリはWindowsレジストリのレジストリキーとして設定されています(変更できません)。サービスによって提供されるディレクトリにロガー出力パスを設定するにはどうすればよいですか?
私は、レジストリキーからログパスを読み込み、そのパスにログしたいサービスを構築しました。このサービスにはロガーは必要ありません:-)
どうすればいいですか?
私はsymfony 3.2プロジェクトを持っており、設定可能なディレクトリにログインしたいと思っています。このディレクトリはWindowsレジストリのレジストリキーとして設定されています(変更できません)。サービスによって提供されるディレクトリにロガー出力パスを設定するにはどうすればよいですか?
私は、レジストリキーからログパスを読み込み、そのパスにログしたいサービスを構築しました。このサービスにはロガーは必要ありません:-)
どうすればいいですか?
実際はどのようにログを記録するかによって異なります。あなたのアプリケーションのロギングのための別のパスを定義したい場合は
は、一般的に言えば、あなたの最善の策は、あなたがAppKernel
自分自身でこのメソッドをオーバーライドしにPHPコードを使用することを防止
AppKernel.php
ナッシングで行うことですWindowsレジストリ内のパスを取得します.Symfony service
の必要はありません。
あなたは、式言語を使用してサービス機能を呼び出す必要があります。
# app/config/config.yml
services:
log_writer:
class: AppBundle\Log\LogWriter
arguments: ["@=service('log_reader').getLogDirectory()"]
documentationをチェックしてください。
私はこれを動作させることができませんでしたが、私は表現構文について学びました - ありがとう!問題は、私が設定キー 'monolog.handlersの下で表現をしたいと思うかもしれません。
これは私がやったことですが、サービスはまだ必要ですが、ログディレクトリを取得する実際の方法は、アプリケーションが実行されているプラットフォームによって異なります。しかし、サービスのインスタンス化は、 'AppKernel.php'で手動で行うのには簡単です。 – Jost
ええと、私はSymfonyサービスに言い換えて、両者を明確に区別しました。パス発見の複雑さをスタンドアロンクラスにカプセル化することは間違いありません。 –