|
|
|
spring operation log
|
|||
|---|---|---|---|
|
#18+
Добрый день ! есть небольшое приложение под управлением spring Объектная модель состоит из 3 бизнес бинов (Есть полная CRUD через spring data repository) Нужно добавить лог операций , какой пользователь сто создал , удалили и коды ошибок ... каким образом такое организовать ? из идей пока ничего простого в голову не приходит ?! есть некий CRUD абстрактный сервис - может на него повесить Interceptor ? и логировать все действия ? тогда каким образом перехватывать ошибки? чтобы их так же писать в лог ? может уже есть готовая библиотека? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2016, 09:54 |
|
||
|
spring operation log
|
|||
|---|---|---|---|
|
#18+
Atum1 каким образом такое организовать ? из идей пока ничего простого в голову не приходит ?! Aspect-oriented Programming Atum1есть некий CRUD абстрактный сервис - может на него повесить Interceptor ? и логировать все действия ? Куда хочешь, туда и вешай. Надо на сервис, вешай на сервис, надо на репозиторий - вешай туда. Atum1тогда каким образом перехватывать ошибки? чтобы их так же писать в лог ? catch (Throwable t) {...} Atum1может уже есть готовая библиотека? http://docs.spring.io/spring/docs/current/spring-framework-reference/html/aop.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2016, 10:39 |
|
||
|
spring operation log
|
|||
|---|---|---|---|
|
#18+
А почему бы не использовать @ControllerAdvice? Мне кажется это отличный способ по отлову всех исключений в одном месте, там же и логировать куда нужно. Что касается всего остального, есть еще такая штука, как @RepositoryEventHandler. Все это конечно же не что иное как Aspect-oriented Programming. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2016, 12:50 |
|
||
|
spring operation log
|
|||
|---|---|---|---|
|
#18+
JulTА почему бы не использовать @ControllerAdvice? Мне кажется это отличный способ по отлову всех исключений в одном месте, там же и логировать куда нужно. Что касается всего остального, есть еще такая штука, как @RepositoryEventHandler. Все это конечно же не что иное как Aspect-oriented Programming. о за @RepositoryEventHandler списибо ! я думал про @EntityListeners Код: java 1. 2. 3. но это как то слишком уж близко к бинам ... а вот про Аспекты - тут проблема в том что это не очень красиво - в плане ,что кто-то из разработчиков может про них не знать или добавив новый функционал может забыть добавить аспект итд... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2016, 14:05 |
|
||
|
spring operation log
|
|||
|---|---|---|---|
|
#18+
Atum1какой пользователь сто создал , удалили и коды ошибок ... у тебя нет вариантов т.к. тут намешано логирование БЛ и ошибки разного уровня. Если логирование БЛ, то они и будут ближе к бинам и БЛ. Если ошибки, то по документации спринг. Т.е. придётся использовать все 4 метода: - try - @аннотация - мойБинПоЛогированию - защита модели БД триггером или .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2016, 14:40 |
|
||
|
spring operation log
|
|||
|---|---|---|---|
|
#18+
Atum1кто-то из разработчиков может про них не знать или добавив новый функционал может забыть добавить аспект итд... тесты на логи об успешных операциях тоже должны быть. Если логи в БД, то триггер тоже можно забыть поставить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2016, 14:42 |
|
||
|
spring operation log
|
|||
|---|---|---|---|
|
#18+
JulTА почему бы не использовать @ControllerAdvice? Мне кажется это отличный способ по отлову всех исключений в одном месте, там же и логировать куда нужно. Что касается всего остального, есть еще такая штука, как @RepositoryEventHandler. Все это конечно же не что иное как Aspect-oriented Programming. Успешные операции так же нужно логировать ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.02.2016, 08:33 |
|
||
|
spring operation log
|
|||
|---|---|---|---|
|
#18+
Atum1, Вопрос : Код: java 1. 2. 3. могу ли я в OperationsLogListener заинжектить сервис? Сейчас operationService = null; Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2016, 13:54 |
|
||
|
spring operation log
|
|||
|---|---|---|---|
|
#18+
Другими словами - можно ли в индекторы (листренеры.. инжектить другие сервисы?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2016, 15:24 |
|
||
|
spring operation log
|
|||
|---|---|---|---|
|
#18+
Atum1, делал похожее через аспекты (для логов ошибок/пользователей/производительности) получается очень удобно и гибко (можно даже прям в DataSource зализать и логировать sql-запросы и делать иерархию вызовов) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2016, 16:23 |
|
||
|
spring operation log
|
|||
|---|---|---|---|
|
#18+
Да , скорее всего нужен именно аспект ... причем очень удобно - и именно прокси : Around advice чтобы выполнять метод записи внутри аспекта и записать действие до выполнения и после ... или ошибку в лог . тут описано про инекцию в в AbstractEntityListener , но у меня этого не происходит ... грубо говоря dateTimeService = null; Код: java 1. 2. 3. 4. https://guylabs.ch/2014/02/22/autowiring-pring-beans-in-hibernate-jpa-entity-listeners/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2016, 17:03 |
|
||
|
spring operation log
|
|||
|---|---|---|---|
|
#18+
Atum1, кому интересно : вот пример : http://blog.javaforge.net/post/76125490725/spring-aop-method-interceptor-annotation https://github.com/bigpuritz/javaforge-blog/blob/master/springaop-custom-interceptor/src/main/java/net/javaforge/blog/spring/aop/ProfilingAdvisor.java ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2016, 17:28 |
|
||
|
spring operation log
|
|||
|---|---|---|---|
|
#18+
вопрос : аннотация Код: java 1. 2. 3. 4. 5. 6. 7. работает только когда стоит на реальным методом ... а можно как то поменять поведение - чтобы логирование вызывалось -и в случае если мы проставили эту аннотацию в интерфейсе ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2016, 20:01 |
|
||
|
spring operation log
|
|||
|---|---|---|---|
|
#18+
Подскажите один ответ: есть Код: java 1. Это аналог Код: java 1. 2. 3. 4. 5. 6. 7. ???? но тогда ему нужно выставить Код: java 1. так ? второе : если я использую танзакции Код: java 1. им так же нужно выставить ? proxyTargetClass = true тогда почему в EnableTransactionManagement public AdviceMode mode() default AdviceMode.PROXY; PROXY - ??? нужно же явно указать AdviceMode ASPECTJ ??? или оно будет работать без AdviceMode ASPECTJ ? Запутался совсем ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2016, 09:01 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39179531&tid=2124303]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
161ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
70ms |
get tp. blocked users: |
2ms |
| others: | 239ms |
| total: | 522ms |

| 0 / 0 |
