com.aol.micro.server.logback.rest.LogbackLoggerResource Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of micro-logback Show documentation
Show all versions of micro-logback Show documentation
Opinionated rest microservices
package com.aol.micro.server.logback.rest;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.Logger;
import com.aol.micro.server.auto.discovery.SingletonRestResource;
@Component
@Path("/logback/logger")
public class LogbackLoggerResource implements SingletonRestResource {
@GET
@Produces(MediaType.TEXT_PLAIN)
@Path("/get/level/{loggerName}")
public String getLevel(@PathParam("loggerName") final String loggerName) {
Logger logger = (Logger) LoggerFactory.getLogger(loggerName);
return logger.getLevel().toString();
}
@GET
@Produces(MediaType.TEXT_PLAIN)
@Path("/change/to/all/{loggerName}")
public String changeToAll(@PathParam("loggerName") final String loggerName) {
Logger logger = (Logger) LoggerFactory.getLogger(loggerName);
changeLevel(logger, Level.ALL);
return getLevel(loggerName);
}
@GET
@Produces(MediaType.TEXT_PLAIN)
@Path("/change/to/debug/{loggerName}")
public String changeToDebug(@PathParam("loggerName") final String loggerName) {
Logger logger = (Logger) LoggerFactory.getLogger(loggerName);
changeLevel(logger, Level.DEBUG);
return getLevel(loggerName);
}
@GET
@Produces(MediaType.TEXT_PLAIN)
@Path("/change/to/error/{loggerName}")
public String changeToError(@PathParam("loggerName") final String loggerName) {
Logger logger = (Logger) LoggerFactory.getLogger(loggerName);
changeLevel(logger, Level.ERROR);
return getLevel(loggerName);
}
@GET
@Produces(MediaType.TEXT_PLAIN)
@Path("/change/to/info/{loggerName}")
public String changeToInfo(@PathParam("loggerName") final String loggerName) {
Logger logger = (Logger) LoggerFactory.getLogger(loggerName);
changeLevel(logger, Level.INFO);
return getLevel(loggerName);
}
@GET
@Produces(MediaType.TEXT_PLAIN)
@Path("/change/to/off/{loggerName}")
public String changeToOff(@PathParam("loggerName") final String loggerName) {
Logger logger = (Logger) LoggerFactory.getLogger(loggerName);
changeLevel(logger, Level.OFF);
return getLevel(loggerName);
}
@GET
@Produces(MediaType.TEXT_PLAIN)
@Path("/change/to/trace/{loggerName}")
public String changeToTrace(@PathParam("loggerName") final String loggerName) {
Logger logger = (Logger) LoggerFactory.getLogger(loggerName);
changeLevel(logger, Level.TRACE);
return getLevel(loggerName);
}
@GET
@Produces(MediaType.TEXT_PLAIN)
@Path("/change/to/warn/{loggerName}")
public String changeToWarn(@PathParam("loggerName") final String loggerName) {
Logger logger = (Logger) LoggerFactory.getLogger(loggerName);
changeLevel(logger, Level.WARN);
return getLevel(loggerName);
}
private void changeLevel(Logger logger, Level newLevel) {
logger.warn("Changing logging level from " + logger.getLevel() + " to " + newLevel);
logger.setLevel(newLevel);
}
}