I am using LOG4J in a Java agent that I created. I have also created a custom appender for logging to a Notes database. The agent works great from the client. However, on the server I have run into problems.
The first problem was that I was getting a security exception when running as a scheduled agent because LOG4J reads the properties file which Notes treats as a native call. This was fixed by adding the LOG4J distribution jar to a place on the server hard drive and referencing it in the server’s NOTES.INI file JavaUserClasses parameter. However, this leads me to my first question. Which distributed LOG4J jar is the class loader using? The one on the server hard drive, or the one I imported into my Agent?
My current issue is that LOG4J is now unable to load my custom appender. I get the following error:
log4j:ERROR Could not instantiate class[mycomp.eus.billing.logging.NotesAppender].
java.lang.ClassNotFoundException: mycomp/eus/billing/logging/NotesAppender
at java.lang.Class.forName1(Native Method)
at java.lang.Class.forName(Class.java:142)
at org.apache.log4j.helpers.Loader.loadClass(Loader.java:160)
at org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:309)
at org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:112)
at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:620)
at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:603)
at org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:500)
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:406)
at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:340)
at JavaAgent.NotesMain(JavaAgent.java:50)
at lotus.domino.AgentBase.runNotes(Unknown Source)
at lotus.domino.NotesThread.run(NotesThread.java:208)
Any ideas how to resolve this error?
Thanks in advance,
Ken Hoying