免费推广网站下载,公司网站需求说明书,网站建设的完整流程包括,宁波慈溪网站建设在运行时中更改日志记录级别很重要#xff0c;这主要在生产环境中非常重要#xff0c;在生产环境中#xff0c;您可能希望在有限的时间内进行调试日志记录。 好了#xff0c;更改根记录器非常简单–假设您有一个具有所需记录级别的输入参数#xff0c;只需获取根记录器并… 在运行时中更改日志记录级别很重要这主要在生产环境中非常重要在生产环境中您可能希望在有限的时间内进行调试日志记录。 好了更改根记录器非常简单–假设您有一个具有所需记录级别的输入参数只需获取根记录器并按输入记录级别进行设置例如 Logger root Logger.getRootLogger();//setting the logging level according to input
if (FATAL.equalsIgnoreCase(logLevel)) {root.setLevel(Level.FATAL);
}else if (ERROR.equalsIgnoreCase(logLevel)) {root.setLevel(Level.ERROR);
} 但是常见的情况是我们按类维护日志实例 例如 class SomeClass{//class level logger
static Logger logger - Logger.getLogger(SomeClass.class);
} 仅设置根记录器是不够的因为类记录器不会受到影响。 诀窍是记住让所有记录器都进入系统并更改其记录级别。 例如 Logger root Logger.getRootLogger();
Enumeration allLoggers root.getLoggerRepository().getCurrentCategories();//set logging level of root and all logging instances in the system
if (FATAL.equalsIgnoreCase(logLevel)) {root.setLevel(Level.FATAL);while (allLoggers.hasMoreElements()){Category tmpLogger (Category) allLoggers.nextElement();tmpLogger .setLevel(Level.FATALLogging, Enterprise Java, Log4j);}
}else if (ERROR.equalsIgnoreCase(logLevel)) {root.setLevel(Level.ERROR);while (allLoggers.hasMoreElements()){Category tmpLogger (Category) allLoggers.nextElement();tmpLogger .setLevel(Level.ERROR);}
} 因此只需将其包装在服务类中然后使用动态logLevel String参数从控制器中调用它即可该参数代表您希望将系统设置为的日志记录级别。 如果您需要完整的解决方案请告诉我。 基本方法是在此链接中 。 参考 如何在我们的JCG合作伙伴 Gal Levinsky的博客 Blog 上更改运行时的日志记录级别 。 翻译自: https://www.javacodegeeks.com/2012/07/how-to-change-logging-level-in-runtime.html