Log4j 动态修改日志级别,不用重启服务器

生产环境正常情况下 只需要打印Info级别的日志就够了,碰到有问题的时候,或者在开发过程中 需要把debug 级别的日志打印出来。

把下面的代码放到一个 Controller 里,通过页面一个的按钮调用即可。

//修改全局
LogManager.getLoggerRepository().setThreshold(Level.INFO);


//修改某一个类
Logger logger = LogManager.getLogger(xxx.class);
logger.setLevel(Level.INFO);
import org.apache.log4j.Level;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;

/**
 * 
 * 动态调整log4j 日志
 * 
 * @author zwl
 * @version [版本号, 2019年3月17日]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
public class LoggerKit
{
    
    public static void info()
    {
        LogManager.getLoggerRepository().setThreshold(Level.INFO);
    }
    
    public static void debug()
    {
        LogManager.getLoggerRepository().setThreshold(Level.DEBUG);
    }
    
    public static void info(String className)
    {
        Logger logger = LogManager.getLogger(className);
        if (null != logger)
        {
            logger.setLevel(Level.INFO);
        }
    }
    
    public static void debug(String className)
    {
        Logger logger = LogManager.getLogger(className);
        if (null != logger)
        {
            logger.setLevel(Level.DEBUG);
        }
    }
    
}

        

     


评论区

冰雨

2019-03-18 08:59

简洁实用,不错的分享

hotsmile

2019-03-18 10:01

建议还是所有的类都约定一下