//Dstl (c) Crown Copyright 2017 package uk.gov.dstl.baleen.core.web.servlets; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import uk.gov.dstl.baleen.core.logging.BaleenLogging; import uk.gov.dstl.baleen.core.web.security.WebPermission; /** * Outputs all recent logs as JSON. * * If using authentication, the user will need the "logging" role to access this * resource. * * * * */ public class LoggingServlet extends AbstractApiServlet { private static final Logger LOGGER = LoggerFactory.getLogger(LoggingServlet.class); private static final long serialVersionUID = 1L; private static final String ROLES = "logging"; private final transient BaleenLogging logging; /** * New instance, which will report on the supplied logging. * * @param registry * the logging to access the data from */ public LoggingServlet(BaleenLogging logging) { super(LOGGER, LoggingServlet.class); this.logging = logging; } @Override public WebPermission[] getPermissions() { return new WebPermission[] { new WebPermission("Access logs", ROLES) }; } @Override protected void get(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { respondWithJson(resp, logging.getRecentLogs()); } }