日志动态修改删除

This commit is contained in:
huguanghan 2024-12-30 15:06:04 +08:00
parent be21e0c5d7
commit 11ab686c9a
2 changed files with 23 additions and 5 deletions

View File

@ -1,6 +1,7 @@
package com.das.modules.admin.controller; package com.das.modules.admin.controller;
import com.das.common.result.R; import com.das.common.result.R;
import com.das.modules.admin.domain.LoggerDto;
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;
@ -34,12 +35,13 @@ public class LoggerController {
/** /**
* 更新日志级别 * 更新日志级别
* *
* @param loggerName 日志名称 * @param loggerDto 日志名称 日志级别 (TRACE, DEBUG, INFO, WARN, ERROR, FATAL)
* @param level 日志级别 (TRACE, DEBUG, INFO, WARN, ERROR, FATAL)
* @return 更新结果 * @return 更新结果
*/ */
@PostMapping("/update") @PostMapping("/update")
public R<String> updateLogLevel(String loggerName, String level) { public R<String> updateLogLevel(@RequestBody LoggerDto loggerDto) {
String loggerName = loggerDto.getLoggerName();
String level = loggerDto.getLevel();
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);
@ -53,11 +55,12 @@ public class LoggerController {
/** /**
* 删除指定日志配置 * 删除指定日志配置
* *
* @param loggerName 日志名称 * @param loggerDto 日志dto
* @return 删除结果 * @return 删除结果
*/ */
@PostMapping("/delete") @PostMapping("/delete")
public R<String> deleteLogLevel(String loggerName) { public R<String> deleteLogLevel(@RequestBody LoggerDto loggerDto) {
String loggerName = loggerDto.getLoggerName();
try { try {
LoggerContext context = (LoggerContext) LogManager.getContext(false); LoggerContext context = (LoggerContext) LogManager.getContext(false);
LoggerConfig loggerConfig = context.getConfiguration().getLoggerConfig(loggerName); LoggerConfig loggerConfig = context.getConfiguration().getLoggerConfig(loggerName);

View File

@ -0,0 +1,15 @@
package com.das.modules.admin.domain;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class LoggerDto {
private String loggerName;
private String level;
}