Hi Antonio

I suggest to you the following. 
1. Take NetBeans or any other IDE and catch the log4j open sources as a project.
2. Build log4j yourself, 
3. JDK 6.0,  maven 2.2.1 and ant 1.7 and a few other lesser important things is 
all you need
4. Do BUILD using NetBeans. / you can use also from a dos window mvn install 
comand
5. Select build.xml and ask for the javadoc ANT target to get doc and API's 
built
6. Then start your TrowableProperty or DOMConfiguratir development



basically you have to consider a few Configurators

BasicConfigurator
        Is extended by the 
                        PropertyConfigurator            (reading config data 
from a property file)
                        OR
                        DOMConfigurator         (reading config data from a XML 
file)
                                Either of the two can be extended by your own 
                                        TrowablePropertyConfigurator
                                        OR
                                        TrowableDOMConfigurator


You may develop your own TrowablePropertyConfigurator or 
TrowableDOMConfigurator and engage it as shown in the Java Class below but this 
time inside a try catch block.

So where is your TrowablePropertyConfigurator engaged?


Look at the file Log4JTest.java written by ThomasFenner under
./contribs/ThomasFenner  (here included as reference) 

You can see that this test catches exceptions if drives are not installed? OK?
And you can see which and how the PropertyConfigurator is engaged?

Now, at this stage we would engage your own TrowablePropertyConfigurator or 
your own TrowableDOMConfigurator



import org.apache.log4j.*;
import java.sql.*;
import java.lang.*;
import java.util.*;

public class Log4JTest
{
        // Create a category instance for this class
   static Category cat = Category.getInstance(Log4JTest.class.getName());

   public static void main(String[] args)
   {
      // Ensure to have all necessary drivers installed !
        try
      {
                        Driver d = 
(Driver)(Class.forName("oracle.jdbc.driver.OracleDriver").newInstance());
                        DriverManager.registerDriver(d);
      }
      catch(Exception e){}

      // Set the priority which messages have to be logged
                cat.setPriority(Priority.INFO);

     try 
     {
                // Configuration with configuration-file
                //PropertyConfigurator.configure("log4jtestprops.txt");
                TrowablePropertyConfigurator.configure("log4jtestprops.txt");
      }
      catch(Exception e){}      

      // These messages with Priority >= setted priority will be logged to the 
database.
                cat.debug("debug");  //this not, because Priority DEBUG is less 
than INFO
      cat.info("info");
      cat.error("error");
      cat.fatal("fatal");
   }
}



For further understanding:
Go to the ./docs/api/org(apache/log4j/PropertyConfigurator.html
Open this and study what the PropertyConfigurator does for you?
And you will find you confirmed that no exceptions are raise by log4j's 
PropertyConfigurator for whatever reason. 
Can you extend the PropertyConfigurator and extend and implement 
TrowablePropertyConfigurator ! Certainly you can.

Finally do not forget to ask somebody from the developers group to help you 
check in your working/tested source code.

Maybe somebody more know to the subject can comment my suggestions

Josef



-----Ursprüngliche Nachricht-----
Von: Antonio Rodriges [mailto:antonio....@gmail.com] 
Gesendet: Montag, 8. August 2011 11:05
An: log4j-user@logging.apache.org
Betreff: Re: Re: Verification of log4j configuration file

Thank you, Josef,

however I would like to force log4j return me an error code or throw
an exception (however docs says it never throws anything) in case of a
malformed config file to stop my application. Otherwise all logs will
cause exceptions and will not appear anywhere.
What is the best practice for an application to behave in case of
malformed log4j conf file?

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-user-h...@logging.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-user-h...@logging.apache.org

Reply via email to