gpt4 book ai didi

带有 Servlet 的 Java 记录器

转载 作者:行者123 更新时间:2023-11-30 05:13:14 25 4
gpt4 key购买 nike

我正在使用一个包装类 A 来初始化 java.util.logger

static class A {

public static Logger logger;

public static void init(){

logger = Logger.getLogger("test");

}

现在,我在程序中的任何地方都调用 A.init(),然后调用 logger.log("Message+uniqid")。但最近我转向 HTTP servlet,但遇到了问题。

基本上,如果应用程序已经在运行并且记录器正在记录...并且其他人再次运行该应用程序,则前一个实例的记录器将停止并开始记录第二个实例。任何人都可以解决我应该如何解决这个静态变量问题吗?

我可以将记录器传递到所有构造函数类中,但这确实很乏味。任何更好的解决方案将不胜感激..

最佳答案

您不需要多次初始化记录器。

实际上,您甚至不需要手动执行此操作,因为您可以创建一个包含配置信息的属性文件并将其放入特定目录,该文件将部署到WEB-INF/应用程序服务器中的classes文件夹。

在配置文件(properties-file)中你可以定义不同的日志写入方式。然后,当您想从某些 servlet(例如 UserCounterServlet)写入日志时,您应该这样做:

private static final Logger logger = Logger.getLogger (UserCounterServlet.class);
...
logger.info("some info");

关于带有 Servlet 的 Java 记录器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2609925/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com