На главнуюКонтактыКарта сайта

Размещение Java программ

Как настроить логирование с помощью Log4j?

Для логирования ошибок web-приложения с помощью Log4j вам необходимо установить в папку /WEB-INF/lib своего web-приложения необходимый jar-архив, скачав его либо непосредственно с сайта проекта Log4j, либо взяв jar-архив с нашего сайта.

Обратите внимание на то, что для того чтобы библиотека, находящаяся в добавленом в папку /WEB-INF/lib jar-архиве, стала действительно доступной web-приложению, web-приложение нуждается в перезапуске!

Перезапуск приложения можно осуществить изменив дату модификации файла web.xml (любое изменение этого файла приводит к автоматической перезагрузке web-приложения).

Пользователи тарифа «Стандартный» также могут воспользоваться панелью управления, а пользователи тарифа «Большой» — стандартной панелью управления приложениями Tomcat (Tomcat Manager).

Затем создайте или возьмите готовый файл настроек для log4j и разместите его в какой-нибудь папке на сервере (рекомендуем использовать папку /WEB-INF своего приложения для размещения файла настроек log4j).

Ниже приводится пример простейшего конфигурационного файла, который будет называться log4j.properties и будет размещен в папке /WEB-INF приложения:

log4j.logger.simple=DEBUG, test
log4j.appender.test=org.apache.log4j.FileAppender
log4j.appender.test.File=/home/web/аккаунт/home/домен/logs/test.log
log4j.appender.test.layout=org.apache.log4j.SimpleLayout

При осуществлении логирования в файл обратите внимание на путь к файлу. Для пользователей тарифа «Стандартный» полный путь к log-директории сайта выглядит следующим образом: /home/web/аккаунт/home/домен/logs/, а для пользователей тарифа «Большой», использующих выделенный сервер Tomcat, путь папке для log-файлов будет выглядеть так: /home/sites/домен/logs (точный путь к директории для размещения логфайлов лучше уточнить у службы технической поддержки)

Для того, чтобы библиотека log4j использовала созданый вами конфигурационный файл, необходимо воспользоваться классом org.apache.log4j.ProperyConfigurator, и с помощью статического метода configure("путь к конфигурационному файлу") задать путь к созданному конфигурационному файлу.

Так как это действие желательно выполнить в момент запуска web-приложения, создадим обработчик событий приложения, выполняющий соответветствующие действия при запуске web-приложения:

import javax.servlet.*;
import java.io.File;
import org.apache.log4j.PropertyConfigurator;

public class Log4jInit implements ServletContextListener {
       
    public void contextInitialized(ServletContextEvent event) {
        String homeDir=event.getServletContext().getRealPath("/");
        File propertiesFile=new File(homeDir,"WEB-INF/log4j.properties");
        PropertyConfigurator.configure(propertiesFile.toString());
    }
    
    public void contextDestroyed(ServletContextEvent event) {} 
    
}

В файле web.xml приложения подключим описаный выше обработчик событий:

<?xml version="1.0" encoding="ISO-8859-1"?>

<web-app 
    xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">

    <listener>
	<listener-class>Log4jInit</listener-class> 
    </listener>

    ...
</web-app>

Теперь вы получили возможность использовать логирование с помощью log4j в своих сервлетах и jsp-страницах.

Ниже приводится пример сервлета использующего логирование с помощью log4j:

import java.io.*;
import javax.servlet.http.*;
import org.apache.log4j.Logger;

public class TestLogServlet extends HttpServlet {
    
    private static Logger logger=Logger.getLogger("simple");
        
    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws IOException{
        logger.info("log message from TestLogServlet");
        response.setContentType("text/html; charset=windows-1251");
        PrintWriter out=response.getWriter();
        out.print("<html><body>");
        out.print("Log4j test servlet");
        out.print("</body></html>");
    }
    
}

JSP-страница, использующая log4j, могла бы выглядеть следующим образом:

<%@ page import="org.apache.log4j.Logger" %>
<% Logger logger=Logger.getLogger("simple"); %>
<html>
<body>
<%
  logger.info("log message from TestLog JSP-page");
%>
  Log4j test JSP-page
</body>
</html>

Полезные ссылки:

Log4j Project

Служба поддержки:
E-Mail: support@brim.ru
Тел.: (495) 517-70-64
Адрес:
115419, г. Москва,
ул. Орджоникидзе, д.11, стр.11,
бизнес-центр «АВС-Эстэйт»