使用log4j,没有使用log4j.properties配置文件,直接使用的BasicConfigurator.configure();但是控制台打印的日志信息会每运行一次代码就会相同的日志增加一条
0 [http-nio-8080-exec-1] ERROR com.zd.log.servlet.Test - error
--------test------
1591 [http-nio-8080-exec-2] ERROR com.zd.log.servlet.Test - error
1591 [http-nio-8080-exec-2] ERROR com.zd.log.servlet.Test - error
--------test------
1593 [http-nio-8080-exec-2] ERROR com.zd.log.servlet.Test - error
1771 [http-nio-8080-exec-2] ERROR com.zd.log.servlet.Test - error
1781 [http-nio-8080-exec-2] ERROR com.zd.log.servlet.Test - error
--------test------
相关代码
@WebServlet("/test")
public class Test extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Logger log = Logger.getLogger(Test.class);
BasicConfigurator.configure();
log.setLevel(Level.DEBUG);
log.error("error");
log.warn("warn");
log.info("info");
log.debug("debug");
System.out.println("--------test------");
}
}
预期结构应该是下面一样,使用log4j.properties配置文件就是跟下面一样
0 [http-nio-8080-exec-1] ERROR com.zd.log.servlet.Test - error
--------test------
1591 [http-nio-8080-exec-2] ERROR com.zd.log.servlet.Test - error~~~~
--------test------
1593 [http-nio-8080-exec-2] ERROR com.zd.log.servlet.Test - error
--------test------
发现原因是BasicConfigurator.configure();执行了多次,如果此代码只执行一次,那么就不会产生哪种情况,值于具体原因还请大佬解释