[日志系统/Log4j2] 基于Log4j2实现动态调整日志级别
概述
最佳实践
LoggingUtils#setLoggerLevel()
import org.apache.logging.log4j.Level; //org.apache.logging.log4j:log4j-api:2.20.0
import org.apache.logging.log4j.LogManager; //org.apache.logging.log4j:log4j-api:2.20.0
import org.apache.logging.log4j.core.LoggerContext; //org.apache.logging.log4j:log4j-core:2.20.0
import org.apache.logging.log4j.core.config.Configurator; //org.apache.logging.log4j:log4j-core:2.20.0
import org.slf4j.Logger; //org.slf4j:slf4j-api:1.7.25
import org.slf4j.LoggerFactory; //org.slf4j:slf4j-api:1.7.25
/**
* 日志处理工具
* @updateTime 2025.8.15 14:38
*/
public class LoggingUtils {
private final static Logger log = LoggerFactory.getLogger(LoggingUtils.class);
public final static String UPDATE_LOGGER_CLASS_PARAM = "sdk.log.updateLogger.class";
public final static String UPDATE_LOGGER_LEVEL_DEFAULT = "INFO";
public final static String UPDATE_LOGGER_LEVEL_PARAM = "sdk.log.updateLogger.level";
/**
* 调整日志级别
*/
public static void setLoggerLevel(String targetClassCanonicalName, String loggerLevelConfig){
log.info("targetClassCanonicalName:{},loggerLevel:{}", targetClassCanonicalName, loggerLevelConfig);
//LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
Level loggerLevel = Level.getLevel(loggerLevelConfig);
if(targetClassCanonicalName == null){
Configurator.setRootLevel(loggerLevel);
} else {
// org.apache.logging.log4j.core.config.Configurator;
Configurator.setLevel(targetClassCanonicalName, loggerLevel);
}
}
public static void setLoggerLevel(){
String targetClassCanonicalName = System.getProperty(UPDATE_LOGGER_CLASS_PARAM); // -Dsdk.log.updateLogger.class=com.xxx.sdk.java.messageparse.XxxParseService
String loggerLevelConfig = System.getProperty(UPDATE_LOGGER_LEVEL_PARAM, UPDATE_LOGGER_LEVEL_DEFAULT);//-Dsdk.log.updateLogger.level=DEBUG
setLoggerLevel(targetClassCanonicalName, loggerLevelConfig);
}
}
X 参考文献
本文作者:
千千寰宇
本文链接: https://www.cnblogs.com/johnnyzen
关于博文:评论和私信会在第一时间回复,或直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
日常交流:大数据与软件开发-QQ交流群: 774386015 【入群二维码】参见左下角。您的支持、鼓励是博主技术写作的重要动力!
本文链接: https://www.cnblogs.com/johnnyzen
关于博文:评论和私信会在第一时间回复,或直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
日常交流:大数据与软件开发-QQ交流群: 774386015 【入群二维码】参见左下角。您的支持、鼓励是博主技术写作的重要动力!

浙公网安备 33010602011771号