0

私はlog4phpを使用しており、基本的にラップしているため、クラスのいずれかがLoggerを呼び出すと、getLoggerで初期化され、呼び出し元のクラスの名前空間に基づいてロガーに名前が付けられます

例えば

名前空間 my\class\space

ロガー::GetInstance( NAME_SPACE )

my\class\space という名前のロガーを作成します (実際には、私のラッパー内でも instance\my\class\space のようなプレフィックスが付けられます)。

すべてのログ ファイルをデフォルト (ルート) ロガーにダンプするように log4php 構成を作成し、関心のある特定の名前空間に基づいて他のロガーを指定するにはどうすればよいですか。

たとえば、次のようなことをしたい

<logger name="instance\my\class\space">

そして、それらのクラスとサブクラスのメッセージを他のすべてのものとは別のファイルに記録します。

何か案は?

ありがとう

アップデート

<logger name="instance\my\class\space" additivity="false">

instance\my\class\space を別のファイルに記録しますが、サブパッケージは含まれていません。

instance\my\class\space\sub はまだルートにログインしています。log4j はサブパッケージを自動的に処理すると思っていましたが、log4php はこれをサポートしていませんか?

4

1 に答える 1

0

Ok。そのため、log4php はサブクラスをサポートしているように見えますが、php 名​​前空間区切り表記ではなく、log4j ドット パッケージ区切り表記を使用しています。

すなわち

instance\my\class\space は php 名​​前空間です

しかし、log4php は Java パッケージの名前空間に変換する必要があるようです

instance.my.class.space

次に、log4php は、次のようなサブ名前付きロガーのサブクラスを自動的に読み取ります。

instance.my.class.space.sub

構成ファイルに行を追加せずに

于 2013-04-02T23:37:48.407 に答える