I have Avalon and Excalibur release 4.0 installed.

I am having some difficulty getting LogKitManager working.

First, it appears that the DefaultLogKitManager will throw a
NullPointerException if a logger is not set:

.java.lang.NullPointerException
        at
org.apache.avalon.excalibur.logger.DefaultLogTargetFactoryManager.configure(Unknown
Source)
        at
org.apache.avalon.excalibur.logger.DefaultLogKitManager.setupTargetFactoryManager(Unknown
Source)
        at
org.apache.avalon.excalibur.logger.DefaultLogKitManager.configure(Unknown
Source)
        at
com.comczar.component.container.ComponentContainer.initialize(ComponentContainer.java:44)


A "SetALoggerYouDummyException" or just gracefully dealing with this
would have been more straightfforward for me.


Now that I figured that out, on to the next exception.  Here is my
intialize method for my container:

    public void initialize() throws ConfigurationException  {
        DefaultConfigurationBuilder builder = new
DefaultConfigurationBuilder();
        try {
            Configuration systemconfig = builder.buildFromFile("myapp.xml");
            Configuration roleconfig = builder.buildFromFile("myapp.roles");
            Configuration logkitconfig = builder.buildFromFile("logkit.xml");
            DefaultRoleManager roles = new DefaultRoleManager();
            DefaultLogKitManager logkit = new DefaultLogKitManager();
           
logkit.setLogger(Hierarchy.getDefaultHierarchy().getLoggerFor("logmanager"));   
    
            logkit.configure(logkitconfig);        
roles.setLogger(Hierarchy.getDefaultHierarchy().getLoggerFor("container.roles"));
            roles.configure(roleconfig);

           
this.manager.setLogger(Hierarchy.getDefaultHierarchy().getLoggerFor("container"));
            //this.manager.setLogger(logkit.getLogger("comczar"));
            this.manager.contextualize(new DefaultContext());
            this.manager.setLogKitManager(logkit);
            this.manager.setRoleManager(roles);
            this.manager.configure(systemconfig);
            this.manager.initialize();
        } catch (org.xml.sax.SAXException e) {
            e.printStackTrace();
            throw new ConfigurationException(e.getMessage());
        } catch (IOException e) {
            e.printStackTrace();
            throw new ConfigurationException(e.getMessage());
        }
    }


And my logkit.xml file:

<?xml version="1.0"?>

<logkit>
  <factories>
    <factory type="file"
class="org.apache.avalon.excalibur.logger.factory.FileTargetFactory"/>
  </factories>

  <targets>
    <file id="root">
      <filename>mylogfile.log</filename>
      <append>true</append>
    </file>
  </targets>

  <categories>
    <category name="root" log-level="DEBUG">
      <log-target id-ref="root"/>
    </category>
  </categories>
</logkit>


And here's the output when I initialize my container:

.DEBUG   28      [containe] (main): added new LogTargetFactory of type
file
E
Time: 0.951
There was 1 error:
1)
testCastorComponent(com.comczar.component.container.TestComponentContainer)
java.lang.NoSuchMethodError: org.apache.log.format.PatternFormatter:
method <init>(Ljava/lang/String;)V not found
        at
org.apache.avalon.excalibur.logger.factory.FileTargetFactory.getFormatter(Unknown
Source)
        at
org.apache.avalon.excalibur.logger.factory.FileTargetFactory.createTarget(Unknown
Source)
        at
org.apache.avalon.excalibur.logger.DefaultLogTargetManager.configure(Unknown
Source)
        at
org.apache.avalon.excalibur.logger.DefaultLogKitManager.setupTargetManager(Unknown
Source)
        at
org.apache.avalon.excalibur.logger.DefaultLogKitManager.configure(Unknown
Source)
        at
com.comczar.component.container.ComponentContainer.initialize(ComponentContainer.java:44)
        at
com.comczar.component.container.ComponentContainer.<init>(ComponentContainer.java:26)
        at
com.comczar.component.container.ComponentContainer.getInstance(ComponentContainer.java:31)
        at
com.comczar.component.container.TestComponentContainer.testCastorComponent(TestComponentContainer.java:25)
        at
com.comczar.component.container.TestComponentContainer.main(TestComponentContainer.java:79)




Thanks in advance,
Kerry Todyruik


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to