Java-написанный плагин для ведения операционных логов и точек перехвата, основанный на ORM-фреймворке. В настоящее время совместим с MyBatis и Hibernate.
<dependency>
<groupId>com.lmx</groupId>
<artifactId>hanbo-audit</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
hibernate.ejb.interceptor=com.lmx.commom.oplog.OpHibernateInterceptor
В Spring Boot:
spring.jpa.properties.hibernate.ejb.interceptor=com.lmx.commom.oplog.OpHibernateInterceptor
3. Настройте MyBatis:
<plugins>
<plugin interceptor="com.lmx.commom.oplog.OpMybatisInterceptor"/>
</plugins>
<appender name="asyncAppender" class="ch.qos.logback.classic.AsyncAppender">
<discardingThreshold>0</discardingThreshold>
<queueSize>1024</queueSize>
<appender-ref ref="file"/>
</appender>
<appender name="es_log_appender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${logPath}/oplog-es.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${logPath}/oplog-es.%d{yyyy-MM-dd}-%i.log</fileNamePattern>
<maxHistory>7</maxHistory>
<TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<MaxFileSize>500MB</MaxFileSize>
</TimeBasedFileNamingAndTriggeringPolicy>
<totalSizeCap>5000MB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>%msg%n</pattern>
</encoder>
</appender>
<appender name="es_log_async_appender" class="ch.qos.logback.classic.AsyncAppender">
<discardingThreshold>0</discardingThreshold>
<queueSize>1024</queueSize>
<appender-ref ref="es_log_appender"/>
</appender>
<logger name="es_log" level="INFO" additivity="false">
<appender-ref ref="es_log_async_appender"/>
</logger>
Сканирование компонентов com.lmx.common.oplog.OpLogAspect
:
@Service
public class DemoServiceDelegate {
@Autowired
DemoService demoService;
@OpLog(opId = "1", operationName = "测试一下", opName = "zhangsan")
public void hibernate() {
demoService.hibernate();
}
@OpLog(opId = "2", operationName = "测试一下", opName = "lisi")
public void mybatis() {
demoService.mybatis();
}
}
Укажите шаблон URL в конфигурации фильтра, чтобы активировать точки перехвата.
Spring Boot:
@Bean
public FilterRegistrationBean newOpLogFilter() {
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
OpLogFilter opLogFilter = new OpLogFilter();
opLogFilter.setNeedOpRecordUrlList(Lists.newArrayList("/demo/cj"));
filterRegistrationBean.setFilter(opLogFilter);
filterRegistrationBean.setUrlPatterns(Lists.newArrayList("/*"));
return filterRegistrationBean;
}
Spring MVC:
<filter>
<filter-name>OpLogFilter</filter-name>
<filter-class>com.lmx.commom.oplog.OpLogFilter</filter-class>
<init-param>
<param-name>needOpRecordUrlList</param-name>
<param-value>/demo/cj</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>OplogFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Структурированный вывод, который впоследствии можно импортировать в ES через filebeats. Можно интегрировать с Kibana или настроить отображение.
{"appId":0,"operationType":"Modify","originalValue":"张三-mybatis-74009d85-6703-4f60-b715-da9e1e98530e","modifyValue":"张三-mybatis-f05cc7e1-6a84-4154-accd-18c0fae34fc3"}
{"appId":0,"operationType":"Modify","originalValue":"503","modifyValue":"603.0"}
{"appId":0,"operationType":"Modify","originalValue":"李四-mybatis-cf95c752-d375-4865-a322-4fda4857da44","modifyValue":"李四-mybatis-58b819a0-be0e-4d99-b0d4-8a3455354d19"}
{"appId":0,"operationType":"Modify","originalValue":"522.0","modifyValue":"622.0"}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )