2017-02-02 7 views
2

В моем приложении Spring/Hibernate/MVC я реализую некоторые длительные функции. В этом случае я хотел бы сообщить пользователю о статусе.Spring: howto show log messages to user?

Интересно, могу ли я получить определенные сообщения log4j в веб-интерфейс, например:

DEBUG d.t.webapp.services.StageServiceImpl - Fetching result 
DEBUG d.t.webapp.services.StageServiceImpl - loaded 1000 rows 
DEBUG d.t.webapp.services.StageServiceImpl - loaded 1000 rows 
DEBUG d.t.webapp.services.StageServiceImpl - loaded 1000 rows 
DEBUG d.t.webapp.services.StageServiceImpl - loaded 994 rows 

Тех сообщения должны появляться на веб-интерфейс, шаг за шагом, так как они производятся бэкэндом, с минимальными затратами задержка. Это возможно или есть лучшие решения для этого требования?

ответ

1

Или почему бы не использовать что-то вроде этого:

1 # Создать контроллер, чтобы предоставить вам последний статус вашего рабочего

@RestController 
@RequestMapping(value = "/worker") 
public WorkerStatusProviderController { 

    @Autowired 
     WorkerStatusProvider workerStatusProvider; 

    @RequestMapping(value = "/status/{id}", method = RequestMethod.GET) 
    public new ResponseEntity<WorkerStatus> getStatus(@PathVariable("id") long workerId){ 

     //retrieve last worker status 
     WorkerStatus lastStatus = workerStatusProvider.getLastStatus(workerId); 

     //send worker status to front 
     return new ResponseEntity<WorkerStatus>(lastStatus, HttpStatus.OK); 
    } 
} 

2 # В использовании интерфейс Ajax для вызова этого контроллера каждые 2 или 3 секунды и отобразить последний статус для вашего пользователя.

//call /worker/status/id every 2 seconds 
setInterval(function(){ 
    $.get("/worker/status/100", function(workerStatus, status) { 

     //display worker status to the user 
     alert("workerStatus: " + workerStatus); 

    }); 
}, 2000); 

 Смежные вопросы

  • Нет связанных вопросов^_^