Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaEE应用程序中尽早初始化Log4J?_Java_Jakarta Ee_Logging_Initialization - Fatal编程技术网

如何在JavaEE应用程序中尽早初始化Log4J?

如何在JavaEE应用程序中尽早初始化Log4J?,java,jakarta-ee,logging,initialization,Java,Jakarta Ee,Logging,Initialization,我想在EAR应用程序中首先初始化Log4j,以便所有其他模块和类都可以使用该记录器 我该怎么做 我对战争和多个EJB jars很敏感。 目前,我正在用Servlet的init方法初始化它,但我似乎有一些类,例如在那之前加载和初始化的计时器 我需要以编程方式初始化Log4j,因为我想为Log4j配置文件提供一个自定义位置。在应用服务器或容器启动期间,我无法通过配置参数传入文件 应用程序服务器是Websphere 8.5,但首选符合通用标准的解决方案。我认为编程上不需要任何初始化。它可以通过Java

我想在EAR应用程序中首先初始化Log4j,以便所有其他模块和类都可以使用该记录器

我该怎么做

我对战争和多个EJB jars很敏感。 目前,我正在用Servlet的init方法初始化它,但我似乎有一些类,例如在那之前加载和初始化的计时器

我需要以编程方式初始化Log4j,因为我想为Log4j配置文件提供一个自定义位置。在应用服务器或容器启动期间,我无法通过配置参数传入文件


应用程序服务器是Websphere 8.5,但首选符合通用标准的解决方案。

我认为编程上不需要任何初始化。它可以通过Java选项初始化,例如-Dlog4j。。。启动容器时


请参见

目前我需要以编程方式进行此操作,因为我正在硬编码一个自定义配置文件名,这并不理想,但我将不得不接受它。我编辑了这个问题来解决这个问题。为什么不这样做呢-Dlog4j.configuration=myCustomFile.properties我在部署、启动或应用程序时无法传递配置参数。应用服务器不在我的控制之下,有许多应用正在运行。我继承了这个应用程序的部署等过程,不想改变现状。最终,我可能能够稍微清理一下一切,但目前我只想解决一些日志消息丢失这一最紧迫的问题,因为log4j init并不是第一件发生的事情。我非常确定JEE容器将在web层的任何servlet之前实例化EJB服务层。servlet需要EJB来工作,而不是相反。解决方法可以是在创建的第一个EJB中初始化log4j?您可以使用“@Startup”@Singleton”来启动它。