Я работаю над веб-приложением Maven, используя Spring MVC 4.2.5.RELEASE, я использую Netbeans IDE с GlassFishSErver 4.1, я хочу использовать log4j 1.2. 17, поэтому я создал файл log4j.properties, но похоже, что мой файл свойств не найден, потому что я получаю следующую ошибку:
log4j:WARN No appenders could be found for logger (org.springframework.web.servlet.DispatcherServlet).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Я настроил свое приложение Spring с использованием аннотаций Java, вот моя конфигурация
@Configuration
@EnableWebMvc
@ComponentScan({"config", "controllers"})
public class ConfigMVC extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**").addResourceLocations("/WEB-INF/resources/");
}
@Bean
public UrlBasedViewResolver setupViewResolver() {
UrlBasedViewResolver resolver = new UrlBasedViewResolver();
resolver.setPrefix("/WEB-INF/jsp/");
resolver.setSuffix(".jsp");
resolver.setViewClass(JstlView.class);
return resolver;
}
вот мой веб-инициализатор
public class WebInicializar implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
ctx.register(ConfigMVC.class);
ctx.setServletContext(servletContext);
Dynamic servlet = servletContext.addServlet("dispatcher", new DispatcherServlet(ctx));
servlet.addMapping("/");
servlet.setLoadOnStartup(1);
servlet.setInitParameter("throwExceptionIfNoHandlerFound", "true");
}
}
а вот мой контроллер
@Controller
public class HomeController {
private static final Logger logger = Logger.getLogger(HomeController.class);
@RequestMapping(value = "/myPage", method = RequestMethod.GET)
public String paginaSinMap(ModelMap map) {
logger.info("This is an info log entry");
logger.error("This is an error log entry");
return "myPage";
}
и вот мой log4j.properties
# LOG4J configuration
log4j.rootLogger=INFO, Appender1, Appender2
log4j.appender.Appender1=org.apache.log4j.ConsoleAppender
log4j.appender.Appender1.layout=org.apache.log4j.PatternLayout
log4j.appender.Appender1.layout.ConversionPattern=%-7p %d [%t] %c %x - %m%n
log4j.appender.Appender2=org.apache.log4j.FileAppender
log4j.appender.Appender2.File=D:/Logs/SpringMVC.log
log4j.appender.Appender2.layout=org.apache.log4j.PatternLayout
log4j.appender.Appender2.layout.ConversionPattern=%-7p %d [%t] %c %x - %m%n
и я поместил этот log4j.properties в папку ресурсов, вот структура моего проекта
РЕДАКТИРОВАТЬ: я не упомянул, что мой проект представляет собой веб-приложение maven, использующее Spring
и это структура моего проекта
MyWebAppProjectName
--Web Pages
--WEB-INF
--jsp
index.jsp
--resources
--js
js.js
--css
site.css
log4j.properties
--Source Packages
--config
ConfigMVC.java
WebInitializaer.java
--controllers
HomeController.java
--Test Packages
--Other Resources
--src/main/resources
--default package
--Dependencies
--Java Dependencies
--Project FIles
Поэтому я поместил log4j.properties в Other Resources/src/main/resources, и когда я это сделал, Netbeans создал пакет по умолчанию с файлом внутри, например, по умолчанию package/log4j-properties, и он сработал, журналы начали появляться в выходных данных, и все работало нормально, как и ожидалось.
Я пытался создать пакет с именем Log4jResource внутри этого пути src/main/resources, но когда я это сделал, он перестал работать, и ошибка появилась снова, так что есть способ поместить этот файл в эту папку, но без необходимости использовать пакет по умолчанию, который NetBeans создает, когда я помещаю туда папку.
Я попробовал выполнить рефакторинг и переименовать пакет по умолчанию, но показывает мне эту ошибку. Рефакторинг модуля JPA вызвал исключение java.lang.NullPointerException. Сообщите об ошибке в модуле рефакторинга JPA и прикрепите файл var/log/messages.log.
Окончательная структура моего проекта выглядит следующим образом
MyWebAppProjectName
--Web Pages
--WEB-INF
--jsp
index.jsp
--resources
--js
js.js
--css
site.css
log4j.properties
--Source Packages
--config
ConfigMVC.java
WebInitializaer.java
--controllers
HomeController.java
--Test Packages
--Other Resources
--src/main/resources
--default package
--log4j.properties
--Dependencies
--Java Dependencies
--Project FIles
Подробнее здесь: https://stackoverflow.com/questions/361 ... a-annotati
Как настроить log4j в приложении Spring Mvc, настроенном с помощью аннотаций Java и используя файл log4j.properties ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Можно ли динамически перезагрузить файл log4j.xml/log4j.properties в Tomcat?
Anonymous » » в форуме JAVA - 0 Ответы
- 45 Просмотры
-
Последнее сообщение Anonymous
-