我想设置log4j配置文件路径/其他文件夹路径,这些路径可以在其他类文件中使用,而无需对文件夹路径进行硬编码。
现在,我已将变量设置为环境变量。但是,只有在启动Eclipse时才能对其进行修改。如何设置此变量,以使任何人(不想启动Eclipse)都可以从外部对其进行修改。另外,它将在测试配置中使用。因此,最好不要对其进行硬编码,并使所有文件路径等易于重构。
final static String log4jpath = System.getenv("LOG4J_PATH");
答案 0 :(得分:0)
Soni,如果要将log4j配置文件放在一个位置,以便所有人都可以访问。请按照下列步骤操作。
上面的选项是如果您不想更改配置文件。
现在,如果有人要修改配置文件。 在这种情况下,只需将配置放在任何项目类路径中,即位于资源文件夹中。只要log4j jar文件位于类路径和配置文件中即可。它将记录所有内容。
但是,如果需要,可以通过将配置作为对象传递来扩展Log4j的功能。您可以在下面的链接中进行参考,以编程方式进行访问。
https://howtodoinjava.com/log4j/how-to-programmatically-configure-appenders-in-log4j/
答案 1 :(得分:0)
我已在属性文件(例如config.properties)中添加了所有文件和文件夹路径,然后由model
这样,可以从外部修改所有文件/文件夹路径,而无需从项目内部设置环境变量。
答案 2 :(得分:0)
改写comment:
[如何从Java程序之外获取价值](例如包含所有其他文件路径的单独文件)?
称为配置文件。
它通常是一个属性文件,类似于Log4j配置文件,但它可以是任何类型的文件,例如XML,JSON,YAML等...
要标识单个此类文件,可以使用:
该文件中的条目将标识您真正想要的所有值。
例如,作为一个填充Java框架的Spring将在许多地方寻找配置 values 。有关详细信息,请参见24. Externalized Configuration,但以下是最常见的摘要:
java -jar MyApp.jar --foo=bar
-Dfoo=bar
进行设置SET foo=bar
(Windows)或export foo=bar
(Linux)config/application.properties
config/application.yaml
application.properties
application.yaml