実行時に設定Log4Phpプロパティ
質問
私は複数のモジュールと、各モジュール内のさまざまな設定を含むPHPアプリケーションを有しています。私はlog4phpを使用してロギングを有効にしたいのですが、個々のモジュールは異なる設定があります(つまり、ログファイルなどをログレベル)。これらの設定の一部は、エンドユーザー(ログレベル)によって、その場で変更する必要があり、私は、データベース内のこれらのプロパティを保存したいと思います。
今私は、動的にログレベルを設定することができます。私は動的にかかわらず、他のプロパティを設定する方法を決定することはできません。 log4phpの設定に関するドキュメントは、ほぼ独占的性質/ xmlファイルを介して行われている - それはすべての設定をプログラムで変更することができると言うのに。
任意のこのような何かをやっていますか?もしそうなら、私はそうどのように行うのですか?私は http://incubator.apache.org/log4php/indexでドキュメントを通して見てきました。 HTML に、私はより多くの援助を必要としています。
明確にするために - 私は、エンドユーザーがこれらに直接アクセスできないように、コンフィギュレーション・ファイルを使用する必要はありません。私は、特定のログ設定を変更するには、フロントエンドを提供し、すべての設定は、データベースに格納されます。
解決
APIのドキュメントを見てみると、彼らはロガーを設定するには、コンフィグアダプタとStrategyパターンを使用していると言われます。アダプタは主によって呼び出されに、構成する単一のメソッドを持っていますロガー。返すPHPファイルをインクルード/読み込みます LoggerConfiguratorPhp のは、あります通常のPHPの配列。私は、これは簡単代わりに、データベースから返された配列を受け入れるように変更することができ想像できます。出発点のために、このクラスのソースコードを見てみましょう。あなたが作成したいだろうと、あなたは、このようにメインLoggerクラスに渡すことができ、LoggerConfiguratorDB
あります:
$configurator = dirname(__FILE__).'/../resources/configurator_db.php';
Logger::configure( $configurator, 'LoggerConfiguratorDb');
私はLog4Phpで働いたことはないし、これはただのAPIを見て、想定しています。私は、新しいアダプタが見えるように持っているだろうか全く手がかりを持っていません。しかし、おそらくこれは正しい方向にあなたを取得します。の
あなたがプロジェクトに寄付していない理由は何かを思い付くために管理する場合:)