我正在使用log4php并且我基本上已经将它包装起来,所以当我的任何类调用Logger时,他们也会使用getLogger将其初始化,并根据调用类的命名空间命名记录器
e.g。
命名空间my \ class \ space
记录器::的GetInstance(的 NAME_SPACE )
将创建一个名为my \ class \ space的记录器(它实际上在我的包装器中也有一个前缀,例如instance \ my \ class \ space)。
如何编写log4php配置以将所有日志文件转储到默认(根)记录器,然后根据我感兴趣的特定命名空间指定其他记录器。
e.g。我想做点什么
<logger name="instance\my\class\space">
并将这些类和子类消息记录到其他所有文件中。
有什么想法吗?
由于
更新
<logger name="instance\my\class\space" additivity="false">
会将我的实例\ my \ class \ space记录到另一个文件中,但它不包括子包,例如。
instance \ my \ class \ space \ sub仍然以root身份登录。我以为log4j自动处理子包,log4php不支持这个吗?
答案 0 :(得分:0)
确定。所以它看起来好像log4php支持子类,但你使用log4j点包分隔符表示法而不是php命名空间分隔符表示法。
即
instance \ my \ class \ space是php命名空间
但log4php似乎需要转换为
的java包名称空间instance.my.class.space
然后log4php将自动读取任何子命名记录器的子类,例如
instance.my.class.space.sub
不再向配置文件中添加任何行