Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > тестовый сервлет для логгера log4j


Автор: check 9.12.2006, 21:20
Сам сервлет отрабатывает без ошибок, а в логе пусто.
Инфу по всему этому делу брал на http://www.brim.ru/faq/java/log4j.html#1

Вот сервлет
Код

import java.io.*;
import javax.servlet.*;
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, ServletException
    {
        logger.info("log message from TestLogServlet");
        response.setContentType("text/html; charset=windows-1251");
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<body>");
        out.println("Logger test");
        out.println("</body>");
        out.println("</html>");
    }
}


Вот log4j.properties
Код

log4j.logger.simple=DEBUG, test
log4j.appender.test=org.apache.log4j.FileAppender
log4j.appender.test.File=/logs/test.log
log4j.appender.test.layout=org.apache.log4j.SimpleLayout


Вот web.xml
Код

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
    <listener>
    <listener-class>Log4jInit</listener-class> 
    </listener>
    <servlet>
        <servlet-name>TestLogServlet</servlet-name>
        <servlet-class>TestLogServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>TestLogServlet</servlet-name>
        <url-pattern>/servlet/TestLogServlet</url-pattern>
    </servlet-mapping>
</web-app>


log4j.properties лежит в папке WEB_INF, так же как и web.xml.
Сам лог-файл test.log находится в WEB_INF/logs.

log4j-1.2.8.jar (JAR в котором находится бибилиотека) в WEB_INF/lib.

Сервер apache-tomcat-6.0.2.

Единственное, что я сам могу пока предположить - может я не туда положил папку logs.

Автор: tux 10.12.2006, 14:24
Попробуй log4j.properties положить в WEB-INF/classes.

Автор: check 10.12.2006, 17:15
Попробовал,   не помогает.

Автор: tux 10.12.2006, 18:03
Цитата(check @  10.12.2006,  17:15 Найти цитируемый пост)
Попробовал,   не помогает. 

По всей видимости что-то в log4j.properties не так. К сожалению я по его настройке не великий специалист. Попробуй что-то такое в нем написать:
Код

log4j.rootLogger=DEBUG, logfile

log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=/logs/test.log
log4j.appender.logfile.MaxFileSize=512KB

log4j.appender.logfile.MaxBackupIndex=3

log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n

Автор: check 10.12.2006, 18:54
 Нет,  и так не работает.

Автор: Greg 10.12.2006, 19:02
Код

log4j.appender.logfile.File=/logs/test.log

Кажется мне,что дело здесь кроется в обозначении "/".Если ты укажешь абсолютный путь к лог файлу в файловой системе,то всё должно работать (как и в примере приведённом выше,там "/" обозначал именно корень файловой системы).

Автор: check 10.12.2006, 20:31
Greg,  ты абсолютно прав,  именно там собака порылась!

Вот так у меня теперь выглядит log4j.properties
Код

log4j.rootLogger=DEBUG, logfile
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=/D:/apache-tomcat-6.0.2/webapps/ROOT/WEB-INF/logs/test.log
log4j.appender.logfile.MaxFileSize=512KB
log4j.appender.logfile.MaxBackupIndex=3
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n


Лежать он должен все-таки в WEB-INF.

Всем спасибо!



 

 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)