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 仍在以 root 身份登录。我以为log4j自动处理子包,log4php不支持这个吗?

4

1 回答 1

0

行。所以看起来好像 log4php 确实支持子类,但您使用 log4j 点包分隔符而不是 php 命名空间分隔符。

IE

instance\my\class\space 是 php 命名空间

但 log4php 似乎需要将其转换为 java 包命名空间

instance.my.class.space

然后 log4php 将自动读取任何子命名记录器的子类,例如

instance.my.class.space.sub

无需在配置文件中添加更多行

于 2013-04-02T23:37:48.407 回答