问题描述
- LOG4J:为什么动态设置日志级别不成功呢
-
public class Client { public static void main(String[] args) { int count = 0; while (true) { PropertyConfigurator.configure(""log4j.properties""); Logger logger = Logger.getLogger(""pear""); logger.info(""日志信息""); logger.debug(""调试信息""); try { Thread.sleep(3000); count++; if (count == 3) { System.out.println(count + ""更改日志级别""); logger.setLevel(Level.DEBUG); } } catch (InterruptedException e) { e.printStackTrace(); } } }}
log4j.logger.pear = info demo log4j.appender.demo = org.apache.log4j.ConsoleAppenderlog4j.appender.demo.Target = System.outlog4j.appender.demo.layout = org.apache.log4j.PatternLayoutlog4j.appender.demo.layout.ConversionPattern = %p - %m%n
count自增到3后,输出的仍然是info级别的日志信息,这是为什么呢?
解决方案
效果图:
?
<%@ page contentType=""text/html; charset=UTF-8""%><%@ page import=""java.util.*org.apache.log4j.*org.dom4j.*org.dom4j.io.*""%><%@ taglib prefix=""s"" uri=""/struts-tags""%>......
答案就在这里:动态设置log4j的日志级别
解决方案二:
日志等级问题,info等级是高于debug的,如果设置了debug,那info 的也会打印。
时间: 2024-09-11 13:58:56