Hello

Apropos:
> I also think, that only one instance is needed of LoggerHierarchy.

I'm too tired to think about this in dept at the moment but coincidently
I just stumbled about the following sentence in the log4j docs:

"Recent log4j releases support multiple hierarchy trees. This
enhancement allows each virtual host to possess its own copy of the
logger hierarchy."
http://logging.apache.org/log4j/1.2/manual.html - NDC section

bye,

-christian-


Am Fri, 7 Aug 2009 22:45:20 +0200
schrieb Christian Grobmeier <[email protected]>:

> Hi,
> 
> please see my other e-mail with refactoring thoughts before a while.
> Would like to hear your thoughts about that too, since your mail and
> mine is tied together.
> 
> I also think, that only one instance is needed of LoggerHierarchy. But
> its not necessary to have a singleton() method in LoggerHierarchy,
> only the Logger class should care about it. My comment (yeah, I wrote
> it :-)) was referring that the class LoggerHierachy is dealing with
> beeing a singleton itself.
> 
> Looking at Log4Js hierarchy:
> http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Hierarchy.html
> 
> Even they don't have a singleton() method in the hierarchy. Its care
> somewhere else.
> 
> Log4PHP doesn't have a repository selector. This would have been tied
> to the LoggerManager, we removed before a while, cause it has no sense
> (at the moment). Looking at the
> http://logging.apache.org/log4j/1.2/manual.html#defaultInit where
> Log4Js  LogManager refers too, its not mentioned any more. Even the
> fields you can find in the link are marked as deprecated.
> 
> However - to make it easy in PHP world I would suggest to create one
> single instance of LoggerHierarchy in the Logger class and delete the
> singleton method from LoggerHierachy.
> 
> But please see my other mail, where I opened this discussion more
> deeply. I am really interested in what you say.
> 
> Thanks,
> Christian
> 
> 
> 
> On Fri, Aug 7, 2009 at 10:31 PM, Christian Hammers<[email protected]>
> wrote:
> > Hello
> >
> > Regarding the TODO comment:
> >
> >    class LoggerHierarchy {
> >        ...
> >        /* TODO: In log4j is this class not a singleton. Why is it
> > in log4php? */ public static function singleton() {
> >                static $instance;
> >                if(!isset($instance)) {
> >                        $instance = new LoggerHierarchy(new
> > LoggerRoot()); }
> >                return $instance;
> >        }
> >
> > In log4j they use:
> >
> >  static private RepositorySelector repositorySelector;
> >
> >  public static LoggerRepository getLoggerRepository() {
> >    if (repositorySelector == null) {
> >        repositorySelector = new DefaultRepositorySelector(new
> > NOPLoggerRepository()); ...
> >    }
> >    return repositorySelector.getLoggerRepository();
> >  }
> >
> > which looks to me like a Singleton. The repositorySelector is only
> > a container for the Hierarchy object which is quite the same as our
> > LoggerHierarchy.
> >
> > bye,
> >
> > -christian-
> >

Reply via email to