Add abitiy to change the log level at runtime

This commit is contained in:
Karup 2017-05-14 15:33:08 +05:30 committed by karuppayya
parent 8194a5e0af
commit e4782c3fae

View file

@ -17,12 +17,18 @@
package org.apache.zeppelin.rest;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.zeppelin.annotation.ZeppelinApi;
import org.apache.zeppelin.server.JsonResponse;
import org.apache.zeppelin.util.Util;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.GET;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
/**
@ -52,4 +58,24 @@ public class ZeppelinRestApi {
public Response getVersion() {
return new JsonResponse<>(Response.Status.OK, "Zeppelin version", Util.getVersion()).build();
}
/**
* Set the log level for root logger
* @param request
* @param logLevel new log level for Rootlogger
* @return
*/
@PUT
@Path("log/level/{logLevel}")
public Response changeRootLogLevel(@Context HttpServletRequest request,
@PathParam("logLevel") String logLevel) {
Level level = Level.toLevel(logLevel);
if (logLevel.toLowerCase().equalsIgnoreCase(level.toString().toLowerCase())) {
Logger.getRootLogger().setLevel(level);
return new JsonResponse<>(Response.Status.OK).build();
} else {
return new JsonResponse<>(Response.Status.NOT_ACCEPTABLE,
"Not a valid LOG level").build();
}
}
}