有没有人可以帮助我用Jconsole配置SpringBoot应用程序,以便进行动态日志配置。
下面是代码设置:谢谢
发布于 2018-07-05 15:53:29
我能够配置Jconsole,能够通过这个Jconsole设置动态日志记录
步骤1->在application.property文件spring.jmx.enabled=true中添加属性
Step 2 -> Create LogConfig class to set log level to to LoggerContext.below是代码
@Component @ManagedResource(objectName = "OfferingService:name=MyCustomLogging",description = "Logging",log = true,logFile = "jmx.log",currencyTimeLimit = 15,persistPolicy = "OnUpdate",persistPeriod = 200,persistLocation = "logging",persistName = "logging")
公共类LoggerConfig{
private static final Logger logger = LoggerFactory.getLogger(LoggerConfig.class);
@ManagedOperation(description = "Set the logging level for a category")
@ManagedOperationParameters( { @ManagedOperationParameter(name = "category", description = "Logger category"),
@ManagedOperationParameter(name = "level", description = "Logging level") })
public void updatLoggerLevel(String category, String logLevel) {
logger.info("updatLoggerLevel Method ================ >>>>: " + category);
logger.info("LogLevel ================ >>>>: " + logLevel);
LoggerContext loggerContext = (LoggerContext)LoggerFactory.getILoggerFactory();
if (logLevel.equalsIgnoreCase("DEBUG")) {
loggerContext.getLogger(category).setLevel(Level.DEBUG);
} else if (logLevel.equalsIgnoreCase("INFO")) {
loggerContext.getLogger(category).setLevel(Level.INFO);
} else if (logLevel.equalsIgnoreCase("TRACE")) {
loggerContext.getLogger(category).setLevel(Level.TRACE);
} else {
logger.error(" Unknown loglevel: " + logLevel);
}
}
@ManagedOperation(description = "Get the logging level for a category")
@ManagedOperationParameters( { @ManagedOperationParameter(name = "category", description = "Logger category") })
public String getLoggerLevel(String category) {
logger.info("getLoggerLevel Method ================ >>>>: " + category);
LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
return loggerContext.getLogger(category).getLevel().toString();
} }步骤3 ->运行springBoot应用程序
step 4 ->转到C:\Program Files\Java\jdk1.8.0_73\bin
步骤5- >打开Jconsole,可以在JConsole中看到objectName = "MyApp“。
步骤6- >转到操作,在那里你可以看到操作名称-> updatLoggerLevel (这是方法名称)这个方法可以从Jconsole中通过提供参数enter code here来激发,比如一个是packaageName,另一个是loglevel。这将覆盖现有的日志配置。
https://stackoverflow.com/questions/51155764
复制相似问题