I was wondering if I can create a project in eclipse or for the matter any Java IDE in which I can write my log4j initialization code and save it as a project so I can just import it in any workspace. I know how to configure a servlet in which I initialize the logger in the init() method and load the servlet on startup but that requires an entry in the web-xml which changes depending on the application.
Is there any way I can create a resuable project where there is no requirement for dependency on the DD ?
In addition to @Stephen C’s answer, some application servers already come with a predefined logging congfiguration. If you’re using JBoss, it already has its own
log4jconfiguration in a file calledjboss-log4j.xml, which defines a standard configuration, which you can adapt to your needs.Other than that, I recommend to bundle a configuration with your application like described in the other answer.
Even smarter and more flexible is to use a log wrapper in your application, which will abstract from the underlying logging framework. Take a look at these:
If you use one of these, you can then configure them to use the logging framework of the server you’re deploying to. Many of the popular open-source frameworks use these log wrapper frameworks for similar reasons. Take a look at them, then adopt one as your standard – I strongly recommend SLF4J.