Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.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
Java 重写log4j.properties_Java_Properties_Jar_Log4j_Propertyconfigurator - Fatal编程技术网

Java 重写log4j.properties

Java 重写log4j.properties,java,properties,jar,log4j,propertyconfigurator,Java,Properties,Jar,Log4j,Propertyconfigurator,我的java应用程序引用了一个使用log4j日志记录的第三方jar文件。问题是这个jar包含自己的log4j.properties文件,这会导致我的机器出现拒绝访问的异常,但我无法控制jar文件来更改其内容 我曾尝试在应用程序的类路径中添加我自己的log4j.properties文件,但似乎没有效果。如果我尝试使用PropertyConfigurator以编程方式导入自己的设置,log4j似乎会首先加载jar文件的属性文件(导致异常) 如何使log4j短路以忽略第三方jar文件的log4j.pr

我的java应用程序引用了一个使用log4j日志记录的第三方jar文件。问题是这个jar包含自己的log4j.properties文件,这会导致我的机器出现拒绝访问的异常,但我无法控制jar文件来更改其内容

我曾尝试在应用程序的类路径中添加我自己的log4j.properties文件,但似乎没有效果。如果我尝试使用PropertyConfigurator以编程方式导入自己的设置,log4j似乎会首先加载jar文件的属性文件(导致异常)


如何使log4j短路以忽略第三方jar文件的log4j.properties文件并使用我自己的文件?

有几种方法可以覆盖log4j.properties,其中之一是:

  • 使用log4j.xml请查看扩展名
另一种方法是:

  • 将log4j.defaultInitOverride系统属性设置为任何其他值 然后,“false”将导致log4j跳过默认初始化过程(此过程)
  • 将资源字符串变量设置为log4j.configuration系统属性的值。指定默认初始化文件的首选方法是通过log4j.configuration系统属性。如果未定义系统属性log4j.configuration,则将字符串变量资源设置为其默认值“log4j.properties”
  • 尝试将资源变量转换为URL
  • 如果资源变量无法转换为URL,例如由于错误的FormedUrlexception,则通过调用org.apache.log4j.helpers.Loader.getResource(resource,Logger.class)从类路径中搜索资源,返回URL。请注意,字符串“log4j.properties”构成格式错误的URL。有关搜索位置的列表,请参见Loader.getResource(java.lang.String)
  • 如果找不到URL,请中止默认初始化。否则,从URL配置log4j。PropertyConfigurator将用于解析URL以配置log4j,除非URL以“.xml”扩展名结尾,在这种情况下将使用DOMConfigurator。您可以选择指定自定义配置程序。log4j.configuratorClass系统属性的值作为自定义配置程序的完全限定类名。您指定的自定义配置器必须实现配置器接口
参考:

如果这些都不起作用

在应用程序配置中添加以下语句

BasicConfigurator.configure()


这对我来说很有效

请尝试在启动应用程序时添加一个名为LOG4J_CONFIGURATION_FILE的环境变量。

URL指的是LOG4J的终止版本。最接近的等效值为: