2012-10-31 1 views
7

Я разработал веб-приложение, где я могу зарегистрировать сотрудника.Как настроить путь вывода файла log4j в файлах web.xml и log4j.properties?

Мои web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> 

    <display-name>Employee Registration</display-name> 

    <welcome-file-list> 
    <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 

    <servlet> 
    <servlet-name>sapient</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
    <servlet-name>sapient</servlet-name> 
    <url-pattern>*.htm</url-pattern> 
    </servlet-mapping> 

</web-app> 

Теперь, когда я нажимаю на кнопку Register в моем HTML-страницы. Он идет к классу контроллера, где я написал код для протоколирования,

@org.springframework.stereotype.Controller 
public class RegController { 
    private static final Logger LOGGER = Logger 
      .getLogger(RegController.class.getName()); 


@RequestMapping(value = "/register.htm", method = RequestMethod.GET) 
public ModelAndView handleRequest(HttpServletRequest request, 
     HttpServletResponse response) throws Exception { 
    LOGGER.debug("ENTERING the contoller class"); 
    ModelAndView mav = new ModelAndView("register"); 
    LOGGER.debug("exiting the contoller class"); 
    return mav; 

} 

}

Я создал пакет под названием resource и создал файл log4j.properties в

# Direct log messages to a log file 
log4j.appender.file=org.apache.log4j.RollingFileAppender 
log4j.appender.file.File=C:\\loging.log 
log4j.appender.file.MaxFileSize=1MB 
log4j.appender.file.MaxBackupIndex=1 
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n 

Но мои журналы не созданы в драйвере C:.

Нужно ли мне что-то настраивать в web.xml? Я уже включил файл log4j.jar.

+0

обратитесь по этой ссылке http: //www.mkyong.com/spring-mvc/spring-mvc-log4j-integration-example/ – Swarne27

ответ

2

Ваш вопрос не имеет ничего общего с Spring MVC. Это просто проблема конфигурации Log4J. (Пожалуйста, отредактируйте ваш вопрос)

Правильно ли вы установили регистратор? (Например, чтобы уровень отладки и установить file Appender к регистратору)

Есть что-то подобное в вашей конфигурации (я просто вспомнить синтаксис по памяти, исправить это самостоятельно, если есть что-нибудь)

log4j.rootLogger.level=INFO, file 
log4j.logger.your.package.RegController=DEBUG 

что-то в этом роде.

Кроме того, убедитесь, что у вас нет других log4j.properties или log4j.xml в classpath. Log4J, вероятно, загрузит их вместо ваших, что вызвало проблему.

+0

что-то не по теме: Я настоятельно рекомендую OP принять SLF4J. Вы все равно можете использовать Log4J в качестве бэкэнда для ведения журнала, но он облегчает настройку, и вы можете изменить свой бэкэнд ведения журнала в будущем –

7

Вы должны включают-

<context-param> 
     <param-name>log4jConfigLocation</param-name> 
     <param-value>/WEB-INF/resource/log4j.properties</param-value> 
    </context-param> 

    <listener> 
     <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> 
    </listener> 

в вашем web.xml. то он будет работать нормально.

+0

и под/WEB-INF/resource/добавить файл log4j.properties с помощью этого кода '# Root опция регистратор log4j.rootLogger = DEBUG, файл # журнала перенаправления сообщений в лог-файл log4j.appender.file = org.apache.log4j.RollingFileAppender #outputs в Tomcat дома log4j.appender.file.File = $ {} catalina.home /logs/myapp.log log4j.appender.file.MaxFileSize = 5МБЫ log4j.appender.file.MaxBackupIndex = 10 log4j.appender.file.layout = org.apache.log4j.PatternLayout log4j. appender.file.layout.ConversionPattern =% d {yyyy-MM-dd HH: mm: ss}% -5p% c {1}:% L -% m% n' –

+0

Работает как шарм. благодаря –

1

Включите следующий файл log4j.properties в папку ресурсов.

log4j.rootCategory=INFO,S,rollingFile 

log4j.appender.S =org.apache.log4j.ConsoleAppender 
log4j.appender.S.layout =org.apache.log4j.PatternLayout 
log4j.appender.S.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %c{1} [%p] %m%n 

log4j.appender.rollingFile = org.apache.log4j.DailyRollingFileAppender 

#provide path to your location where you want logs created. For now its logs folder of tomcat. 
log4j.appender.rollingFile.File = ${catalina.home}/logs/loging.log 
log4j.appender.rollingFile.Append = true 
log4j.appender.rollingFile.MaxFileSize=2000KB 
log4j.appender.rollingFile.MaxBackupIndex=9 

log4j.appender.rollingFile.Threshold = ALL 

log4j.appender.rollingFile.DatePattern = '.'yyy-MM-dd 
log4j.appender.rollingFile.layout = org.apache.log4j.PatternLayout 
log4j.appender.rollingFile.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %c{1} [%p] %m%n 

Замените код на этот. Определенно это сработает.

0

в вашем web.xml добавить этот код

<context-param> 
     <param-name>log4jConfigLocation</param-name> 
     <param-value>/WEB-INF/resource/log4j.properties</param-value> 
    </context-param> 

    <listener> 
     <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> 
    </listener> 

и под/WEB-INF/ресурс/добавить файл log4j.properties с этим кодом

# Root logger option 
    log4j.rootLogger=DEBUG, file # Redirect log messages to a log file 
    log4j.appender.file=org.apache.log4j.RollingFileAppender #outputs to 
    Tomcat home log4j.appender.file.File=${catalina.home}/logs/myapp.log 
    log4j.appender.file.MaxFileSize=5MB 
    log4j.appender.file.MaxBackupIndex=10 
    log4j.appender.file.layout=org.apache.log4j.PatternLayout 
    log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} 
    %-5p %c{1}:%L - %m%n 

и в своем классе оных этот код

private static final Logger logger = Logger.getLogger(NameOfYourrClass.class); 

и внутри вашей функции добавить этот код

logger.debug("This is Error message", new Exception("Testing")); 
Смежные вопросы