Настройка ведения журнала для веб-приложения

У меня есть Spring Webapp, упакованный как WAR-файл, который развертывается в Tomcat.

Catalina.out показывает

log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
gen 29, 2013 11:37:04 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error listenerStart

Вероятно, это ошибка конфигурации в Spring или Hibernate. Но для того, чтобы найти причину ошибки listenerStart , я думаю, что необходимо включить log4j. В результате поиска я обнаружил, что предупреждение log4j вызвано отсутствием конфигурации log4j, и это точно, потому что я еще не настроил его.

Как настроить log4j (где я могу поместить файл конфигурации и что мне вводить), чтобы регистрировать ошибки на catalina.out, что является наиболее подходящим местом для ведения журнала разработки?

0
nl ja de

2 ответы

Самый простой подход ( источник )

В src/main/webapp/WEB-INF/classes (с учетом макета Maven) или WebContent/WEB-INF/classes (с учетом классического макета Eclipse) создайте < code> logging.properties со следующим содержимым:

org.apache.catalina.core.ContainerBase.[Catalina].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].handlers = java.util.logging.ConsoleHandler

Then redeploy and get your desired BOOM on catalina.out

0
добавлено

Создайте файл log4j.xml , подобный этому

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


    
        
        
            
        
    
    <!-- Here you create additional logger for your application, ie:
    
         
    
    -->
    
        
        
    

Основное объяснение этого файла конфигурации

  1. appender: you can define multiple appender, the one I set up for you is called CONSOLE and is a ConsoleAppender, which means it writes on the standard output (in a tomcat environment, catalina.out).
  2. layout is the definition of the layout of your log file, take a look to PatternLayout to understand the meaning of what I wrote and to modify to your needs
  3. logger, where you define one or more logger for your application. Here I simply define a rootLogger with default level info and which is going to use the CONSOLE appender.

Place this file wherever in your classpath and you will have your log4j configured. For a full tutorial, you can refer to http://logging.apache.org/log4j/1.2/manual.html

EDIT I read over your question again, I suggest you to add a second logger to log spring stuff like


    

где вы просто устанавливаете уровень на мелкозернистый, который вы желаете для сообщения Spring. Полный учебник объяснит уровни достаточно четко, но, короче говоря, чем выше уровень, тем менее подробным будет ваш журнал.

0
добавлено