Thanks Jeremias. I'll try what you suggest which looks fine. Cheers, -Vincent
> -----Original Message----- > From: Jeremias Maerki [mailto:[EMAIL PROTECTED]] > Sent: 11 January 2002 08:36 > To: Avalon Developers List > Subject: Re: [repost] Configuring LogKit for ExcaliburComponentManager ? > > Hi Vincent > > I do it this way (and I am really happy with it): > > org.apache.log.Logger rootLogger = > > org.apache.log.Hierarchy.getDefaultHierarchy().getLoggerFor("MyApp"); > > MyApp main = new MyApp(args[0]); > main.setLogger(rootLogger); > main.initialize(); > > (later...) > > DefaultConfigurationBuilder cfgBuilder = new > DefaultConfigurationBuilder(); > Configuration cfg = cfgBuilder.buildFromFile(cfgFile); > > getLogger().setPriority(org.apache.log.Priority.getPriorityForName(cfg.g et > Attribute("log", "INFO"))); > > //Log Manager > this.logmanager = new DefaultLogKitManager(); > setupLogger(logmanager, "logmanager"); > ((Configurable)logmanager).configure(cfg.getChild("logkit")); > > //Configuration > this.manager = new ExcaliburComponentManager(); > this.manager.setLogger(logmanager.getLogger("environment")); > this.manager.setLogKitManager(logmanager); > this.manager.configure(cfg.getChild("environment")); > this.manager.initialize(); > > The config file looks approximately like this: > <config log="INFO"> > <logkit> > <factories> > <factory type="stream" > class="org.apache.avalon.excalibur.logger.factory.StreamTargetFactory"/> > <factory type="file" > class="org.apache.avalon.excalibur.logger.factory.FileTargetFactory"/> > <factory type="priority-filter" > class="org.apache.avalon.excalibur.logger.factory.PriorityFilterTargetFa ct > ory"/> > </factories> > <targets> > <stream id="console"> > <stream>System.out</stream> > <format type="avalon">%19.19{time:yyyy-MM- > dd'T'HH:mm:ss.SSS} %5.5{priority}[%-15.15{category}]: > %{message}\n%{throwable}</format> > </stream> > </targets> > <categories> > <category name="environment" log-level="INFO"> > <log-target id-ref="console"/> > </category> > <category name="XML" log-level="DEBUG"> > <log-target id-ref="console"/> > <category name="XPath" log-level="DEBUG"> > <log-target id-ref="console"/> > </category> > </category> > </categories> > </logkit> > <components> > <component role="com.outline.util.vfs.VFSManager" > class="com.outline.util.vfs.DefaultVFSManager"> > <vfs name="test" class="com.outline.util.vfs.os.OSFileSystem"> > <root>../../test</root> > </vfs> > </component> > <component > role="com.outline.outputcenter.util.JNDIProviderSelector" > class="org.apache.avalon.excalibur.component.ExcaliburComponentSelector" > > <component-instance name="default" > class="com.outline.outputcenter.util.DefaultJNDIProvider" logger="JNDI"/> > <component-instance name="jboss" > class="com.outline.outputcenter.util.DefaultJNDIProvider" logger="JNDI"> > > <java.naming.factory.initial>org.jnp.interfaces.NamingContextFactory</ja va > .naming.factory.initial> > > <java.naming.provider.url>localhost</java.naming.provider.url> > > <java.naming.factory.url.pkgs>org.jboss.naming</java.naming.factory.url. pk > gs> > </component-instance> > </component> > <!-- more config... --> > </components> > </config> > > Of course, I also have the chicken/egg problem until the logmanager has > been started, but I can live with that since until this instant nothing > important happens anyway. > > > On Fri, 11 Jan 2002 08:17:58 -0000 Vincent Massol wrote: > > Hi, > > > > I'm using ExcaliburComponentManager to manage my components. It needs a > > LogKit logger to work. I am using something like : > > > > manager.setLogger(Hierarchy.getDefaultHierarchy().getLoggerFor("systemCo > > nfig")); > > > > This works fine. However, the logs are printed on the console and I > > would like to know how to configure it with other > > appender/filters/format etc. I would like this configuration to be > > externalized in a configuration file (same a log4j.properties or > > log4j.xml one for Log4j). > > > > It is my understanding that logkit does not provide a configuration file > > abstraction, is that right ? It is also my understanding that there is > > an excalibur DefaultLogKitManager component that does this, is that > > correct ? > > > > Looking at the source code for DefaultLogKitManager, I can see that : > > * it is itself a component. So I'll have to manually initialize it as > > there is no component manager at this stage, > > * it itself needs a LogKit logger to work ... This is the chicken and > > egg problem. > > > > What is the recommended way to do this ? Can someone provide some > > pointers to me ? > > > > Thanks > > -Vincent > > Cheers, > Jeremias Märki > > mailto:[EMAIL PROTECTED] > > OUTLINE AG > Postfach 3954 - Rhynauerstr. 15 - CH-6002 Luzern > Fon +41 (41) 317 2020 - Fax +41 (41) 317 2029 > Internet http://www.outline.ch > > > -- > To unsubscribe, e-mail: <mailto:avalon-dev- > [EMAIL PROTECTED]> > For additional commands, e-mail: <mailto:avalon-dev- > [EMAIL PROTECTED]> > -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>