日志动态修改

This commit is contained in:
huguanghan 2024-12-27 17:01:33 +08:00
parent 5b84583b83
commit f8279e4b52

View File

@ -1,5 +1,6 @@
package com.das.modules.admin.controller; package com.das.modules.admin.controller;
import com.das.common.result.R;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.core.LoggerContext; import org.apache.logging.log4j.core.LoggerContext;
@ -21,13 +22,13 @@ public class LoggerController {
* @return 当前所有日志级别 * @return 当前所有日志级别
*/ */
@GetMapping("/list") @GetMapping("/list")
public Map<String, String> listLogLevels() { public R<Map<String, String>> listLogLevels() {
LoggerContext context = (LoggerContext) LogManager.getContext(false); LoggerContext context = (LoggerContext) LogManager.getContext(false);
return context.getConfiguration().getLoggers().values().stream() return R.success(context.getConfiguration().getLoggers().values().stream()
.collect(Collectors.toMap( .collect(Collectors.toMap(
LoggerConfig::getName, LoggerConfig::getName,
loggerConfig -> loggerConfig.getLevel().toString() loggerConfig -> loggerConfig.getLevel().toString()
)); )));
} }
/** /**
@ -38,14 +39,14 @@ public class LoggerController {
* @return 更新结果 * @return 更新结果
*/ */
@PostMapping("/update") @PostMapping("/update")
public String updateLogLevel(String loggerName, String level) { public R<String> updateLogLevel(String loggerName, String level) {
try { try {
Configurator.setLevel(loggerName, org.apache.logging.log4j.Level.valueOf(level.toUpperCase())); Configurator.setLevel(loggerName, org.apache.logging.log4j.Level.valueOf(level.toUpperCase()));
logger.info("Updated logger [{}] to level [{}]", loggerName, level); logger.info("Updated logger [{}] to level [{}]", loggerName, level);
return String.format("Logger [%s] updated to level [%s]", loggerName, level); return R.success( String.format("Logger [%s] updated to level [%s]", loggerName, level));
} catch (IllegalArgumentException e) { } catch (IllegalArgumentException e) {
logger.error("Invalid log level [{}]", level, e); logger.error("Invalid log level [{}]", level, e);
return String.format("Invalid log level [%s]. Valid levels: TRACE, DEBUG, INFO, WARN, ERROR, FATAL.", level); return R.fail(String.format("Invalid log level [%s]. Valid levels: TRACE, DEBUG, INFO, WARN, ERROR, FATAL.", level));
} }
} }
} }