En reprenant un ancien exemple que j’avais écrit sur Log4, je montrais comment charger facilement un fichier XML de configuration pour ouvrir/fermer des traces. Cependant mon appel système pour charger le fichier en question n’est pas des plus pratique. Si le fichier en question n’est pas dans le répertoire d’execution de l’application, alors Log4J ne peut pas s’initialiser et l’application plante. Pour éviter cela, le plus simple est de placer le fichier log4j.xml dans le classpath de votre application puis d’utiliser le ClassLoader du system pour trouver et charger ce fichier.
En reprenant le petit exemple sur log4j que j’avais écrit il y a un moment, voici ce que j’ajouterai au début du programme:
public class EJBSampleWithPDS { static Logger log = Logger.getLogger(EJBSampleWithPDS.class); /** My Main for testing. * @param args the command line */ public static void main(String[] args) { // Use the system class loader. URL u=ClassLoader.getSystemClassLoader().getSystemResource("log4j.xml"); if(u==null){ throw new RuntimeException("Please put a valid log4j.xml in the classpath"); } DOMConfigurator.configure(u); log.info("Application starting..."); // Use JNDI to lookup EJB's Home interface Properties props = new Properties(); ... ... }