Я только что начал изучать SpringMVC и logback.Регистрация с контроллера SpringMVC
Это мой контроллер (только один я до сих пор)
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class IndexController {
protected final static Logger logger = LoggerFactory.getLogger(IndexController.class);
@RequestMapping("/index")
public ModelAndView index() {
logger.info("Returning index view");
return new ModelAndView("index");
}
}
и это тестовый код для выше.
import org.junit.Test;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertEquals;
import org.springframework.web.servlet.ModelAndView;
public class IndexControllerTest {
@Test
public void index() throws Exception {
IndexController iController = new IndexController();
ModelAndView modelAndView = iController.index();
assertNotNull(modelAndView.getModel());
assertEquals("index", modelAndView.getViewName());
}
}
У меня есть Logback установки для входа в файл с FixedWindowRollingPolicy, конфигурация,
<configuration>
<appender name="FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>logFile.log</File>
<RollingPolicy
class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<FileNamePattern>logFile.%i.log</FileNamePattern>
<MinIndex>1</MinIndex>
<MaxIndex>3</MaxIndex>
</RollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>5MB</MaxFileSize>
</triggeringPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>
%-26(%d{HH:mm:ss,SSS} [%thread]) %-5level %logger{32} - %msg%n
</Pattern>
</layout>
</appender>
<root level="info">
<appender-ref ref="FILE" />
</root>
</configuration>
Проблема, у меня есть сейчас, является то, что запись не создается в лог-файл, а доступ к сайту из браузера. Я бы предположил, что контроллер вызван, который впоследствии возвращает представление, которое представлено в браузере, и, следовательно, метод журнала должен быть вызван до отображения представления. Но ничего не происходит.
Однако при запуске теста ведение журнала работает как ожидалось, и у меня есть конкретная запись в logFile для «возврата индексного представления».
Любые помощь или рекомендации относительно вышеуказанной ситуации очень ценятся.
EDIT: Использование tomcat6 с apache в данный момент.
Файл конфигурации журнала, logback.xml размещается непосредственно под src (по умолчанию). Как я проверил после развертывания, он копируется в WEB-INF/classes/
В каком контейнере вы используете контроллер? – skaffman
Где вы размещаете конфигурационный файл журнала? – axtavt
Я использую tomcat6 вместе с apache. отредактированный вопрос, чтобы добавить информацию – Sujoy