|
|
|
Spring MVC + log4j
|
|||
|---|---|---|---|
|
#18+
Добрый день! Помогите подключить логирование в мое Spring MVC приложение. Все на Java без xml. структура проекта такая: -src --main ---java ---webapp ----WEB-INF -----resources -----pages public class WebInitializer implements WebApplicationInitializer{ @Override public void onStartup(ServletContext servletContext) throws ServletException { FilterRegistration.Dynamic fr = servletContext.addFilter("encodingFilter", new CharacterEncodingFilter()); fr.setInitParameter("encoding", "UTF-8"); fr.setInitParameter("forceEncoding", "true"); fr.addMappingForUrlPatterns(null, true, "/*"); AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext(); ctx.register(AppConfig.class); ctx.register(SecurityConfig.class); servletContext.addListener(new ContextLoaderListener(ctx)); ctx.setServletContext(servletContext); ctx.refresh(); ServletRegistration.Dynamic servlet = servletContext.addServlet("dispatcher", new DispatcherServlet(ctx)); servlet.addMapping("/"); servlet.setLoadOnStartup(1); В зависимости добавил log4j. Не могу понять куда правильно добавить log4j.prorerties и как его верно сконфигурировать, и нужно ли что то добавлять в WebInitializer.. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2015, 10:17 |
|
||
|
Spring MVC + log4j
|
|||
|---|---|---|---|
|
#18+
Конфигурация log4j довольно подробно описана в спринговском reference guide (версии 4.0 , 4.1 , 4.2 ). В зависимости от версии log4j и версии сервлет-контейнера могут быть определенные нюансы конфигурации (версии 1.2.x , 2.x ). При этом нужно учитывать, что создание спринговских классов само по себе что-то логирует, что может приводить к варнингам со стороны log4j (текст может варьировать в зависимости от того, какой класс спринга инициализируется): Код: java 1. 2. 3. Перфекционисты, желающие варнинги забороть, должны отключать log4j перед инициализацией соответствующих классов, а потом инициализировать логирование вручную: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. При этом файл с конфигурацией log4j привязан к сервлет-контексту (т.е. должен быть запакован внутри war-файла). Если по каким-то причинам конфигурация должна быть внешней, нужно переписать метод initLogging спринговского класса Log4jConfigurer, чтобы доставать конфигурационный файл из файловой системы: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. Также нужно учесть, что если в самом конфиге log4j используются какие-то переменные (например, путь к папке с логами), перед инициализацией логирования их нужно передавать в System properties, иначе подхватываться они не будут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2015, 11:31 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39140525&tid=2124494]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
71ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 252ms |
| total: | 408ms |

| 0 / 0 |
