Не уверен, что вы действительно хотите сделать ....
если ваш log4j.xml находится в classpath, при запуске вашего сервера приложений он должен быть загружен автоматически.
Проверьте консоль при запуске вашего сервера, и вы должны увидеть информацию о log4j.
Вы также можете поместить debug = true:
<log4j:configuration debug="true" xmlns:log4j="http://jakarta.apache.org/log4j/">
в ваш xml.вы сможете увидеть много информации о вашей конфигурации.
Теперь, если вы хотите получить доступ к приложениям, которые вы настроили в log4j.xml, все, что вам нужно сделать, это:
Logger mylogger = Logger.getLogger("MyAppenderName");
Хорошо, я думаю, вы хотите загрузить пользовательский файл конфигурации log4j!В контексте веб-приложения вам понадобятся 2 вещи:
create contextListnerServlet;измените ваш web.xml
ServletListner:
public class StartupListener implements ServletContextListener
{
@Override
public void contextDestroyed(ServletContextEvent arg0)
{
// Cleanup code goes here
}
@Override
public void contextInitialized(ServletContextEvent sce)
{
Logger logger = null;
String log4jFile = sce.getServletContext().getInitParameter("log4jFileName");
DOMConfigurator.configure(sce.getServletContext().getRealPath(log4jFile));
logger = LogManager.getLogger(StartupListener.class.getName());
logger.debug("Loaded: " + log4jFile);
}
web.xml:
<context-param>
<param-name>log4jFileName</param-name>
<param-value>
WEB-INF/config/log4j-my.xml
</param-value>
</context-param>
<listener>
<listener-class>
com.yourpackage.StartupListener
</listener-class>
</listener>
Надеюсь, это поможет