首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何集成Jconsole(Jdk/bin)和SpringBoot应用程序来管理动态记录器配置

如何集成Jconsole(Jdk/bin)和SpringBoot应用程序来管理动态记录器配置
EN

Stack Overflow用户
提问于 2018-07-03 21:23:52
回答 1查看 68关注 0票数 0

有没有人可以帮助我用Jconsole配置SpringBoot应用程序,以便进行动态日志配置。

下面是代码设置:谢谢

EN

回答 1

Stack Overflow用户

发布于 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{

代码语言:javascript
复制
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。这将覆盖现有的日志配置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51155764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档