2017-01-17 1 views
1

私はsymfony 3.2プロジェクトを持っており、設定可能なディレクトリにログインしたいと思っています。このディレクトリはWindowsレジストリのレジストリキーとして設定されています(変更できません)。サービスによって提供されるディレクトリにロガー出力パスを設定するにはどうすればよいですか?

私は、レジストリキーからログパスを読み込み、そのパスにログしたいサービスを構築しました。このサービスにはロガーは必要ありません:-)

どうすればいいですか?

答えて

3

実際はどのようにログを記録するかによって異なります。あなたのアプリケーションのロギングのための別のパスを定義したい場合は

は、一般的に言えば、あなたの最善の策は、あなたが AppKernel自分自身でこのメソッドをオーバーライドしにPHPコードを使用することを防止 AppKernel.php

ナッシングで行うことですWindowsレジストリ内のパスを取得します.Symfony serviceの必要はありません。

+0

これは私がやったことですが、サービスはまだ必要ですが、ログディレクトリを取得する実際の方法は、アプリケーションが実行されているプラ​​ットフォームによって異なります。しかし、サービスのインスタンス化は、 'AppKernel.php'で手動で行うのには簡単です。 – Jost

+0

ええと、私はSymfonyサービスに言い換えて、両者を明確に区別しました。パス発見の複雑さをスタンドアロンクラスにカプセル化することは間違いありません。 –

1

あなたは、式言語を使用してサービス機能を呼び出す必要があります。

# app/config/config.yml 
services: 
    log_writer: 
     class:  AppBundle\Log\LogWriter 
     arguments: ["@=service('log_reader').getLogDirectory()"] 

documentationをチェックしてください。

+0

私はこれを動作させることができませんでしたが、私は表現構文について学びました - ありがとう!問題は、私が設定キー 'monolog.handlersの下で表現をしたいと思うかもしれません。 .path'となります。式は評価されないようです。 – Jost

関連する問題