The LogFactory is available as a service, so that any component that needs a logger instance can gain easy access to one. The factory's service name is @:logs@.

<pre>
  factory = reg.logs
</pre>

You obtain logger instances from the factory by passing a logger name to @#get@:

<pre>
  logger = reg.logs.get "a logger name"
</pre>

Subsequent calls to @#get@ will return the same logger instance for the given logger name.

h3. Loggers for Services

Typically, you'll use this to assign a logger instance to a service when it is constructed. In that case, the name of the logger is the fully-qualified name of the service:

<pre>
  reg.register( :foo ) do |c,p|
    Foo.new( c.logs.get( p.fullname ) )
  end
</pre>

As a convenience, if the value passed to @#get@ responds to either @fullname@ or @name@, the return value of that message will be used as the name. Thus, you can do the following:

<pre>
  reg.register( :foo ) do |c,p|
    Foo.new( c.logs.get( p ) )
  end
</pre>

As a further convenience, there is a @:log_for@ service that is parameterized. Just pass the name of the log to retreive (or the service point instance) and it will return the log handle directly:

<pre>
  reg.register( :foo ) do |c,p|
    Foo.new( c.log_for( p ) )
  end
</pre>

