Как захватить любые поля, введенные пользователем в Java и войти в базу данных - PullRequest
0 голосов
/ 17 января 2019

У меня есть требование, когда необходимо записать любое действие (обновление, изменение или вставка), выполненное пользователем, и войти в базу данных. Использование log4j и запись журналов на сервер, но необходимо вставить таблицу журналов. Есть ли способ захвата или любое альтернативное решение для записи журналов в базу данных.

Я написал служебный метод для захвата журналов, но я чувствую, что его довольно неэффективный способ обработки.


public class Logging {   

public static void captureLogs(Logs logs, String action, String userID, Date createdDate) {   
    logs.setUserId(userID);
    logs.setAction(action);
    logs.setCreatedDate(createdDate);

}
}

public class Logs {

 private String action;
 private String userId;
 private Date createdDate;

  // getters and setters

}

@Service   
public TaskServiceImpl implements TaskService {

 private static final Logger LOGGER = LoggerFactory.getLogger(TaskServiceImpl .class);

 @Autowired   
 private   Logsrepository logsrepository;

 @Autowired    
 private   UserRepository userRepository;

 public String updateUserDetails(String userId,UserDto dto){

 Logs logs=new Logs();    
 Task task=userRepository.findOne(userId);    
 task.setTaskId(dto.getTaskId);    
 task.setTaskCompletedDate(dto.getTaskCompletedDate);    
 String action="User updated taskID"+dto.getTaskId+" and 
 taskCompletedDate"+dto.getTaskCompletedDate;    
 LOGGER.info("message : "+ action);    
 Logging.logs(logs,action,userId,new Date());    
 userRepository.flush();    
 logsrepository.save(logs);    
  }
 }    

Может ли он быть обработан лучше?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...