You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

40 lines
1.1KB

  1. package vn.azteam.tpf.web.rest;
  2. import vn.azteam.tpf.web.rest.vm.LoggerVM;
  3. import ch.qos.logback.classic.Level;
  4. import ch.qos.logback.classic.LoggerContext;
  5. import com.codahale.metrics.annotation.Timed;
  6. import org.slf4j.LoggerFactory;
  7. import org.springframework.http.HttpStatus;
  8. import org.springframework.web.bind.annotation.*;
  9. import java.util.List;
  10. import java.util.stream.Collectors;
  11. /**
  12. * Controller for view and managing Log Level at runtime.
  13. */
  14. @RestController
  15. @RequestMapping("/management")
  16. public class LogsResource {
  17. @GetMapping("/logs")
  18. @Timed
  19. public List<LoggerVM> getList() {
  20. LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
  21. return context.getLoggerList()
  22. .stream()
  23. .map(LoggerVM::new)
  24. .collect(Collectors.toList());
  25. }
  26. @PutMapping("/logs")
  27. @ResponseStatus(HttpStatus.NO_CONTENT)
  28. @Timed
  29. public void changeLevel(@RequestBody LoggerVM jsonLogger) {
  30. LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
  31. context.getLogger(jsonLogger.getName()).setLevel(Level.valueOf(jsonLogger.getLevel()));
  32. }
  33. }