我使用log4j2库来管理日志记录过程。 我创建了一个名为log4j2.xml的配置文件,其中包含Appenders和Loggers配置。然后,我在每个类中定义了一个Logger
private static Logger my_logger = LogManager.getLogger(my_class);
我没有在任何地方指定conf文件的名称,所以我认为该库隐式地获取并读取它。
现在,我需要以jar文件的形式提供我的应用程序,因此我需要使配置文件可用,以便用户可以修改和配置它。
在我的情况下,我建议在jar文件的级别创建一个XXX文件夹,其中包含我的应用程序使用的所有配置文件。
我的问题是我怎么能对应用程序说"得到XXX / log4j2.xml"而不是jar中包含的xml。
答案 0 :(得分:1)
该配置文件必须位于类路径中,如果您希望应用程序从任何其他位置读取配置,则需要使用
指定该配置文件PropertyConfigurator.configure("/myPath/log4j.properties");
答案 1 :(得分:0)
制作任何文件夹并将您的属性或xml文件放入其中。要读取属性文件,您可以执行以下操作:
Properties objProperties = new Properties();
<your-class>.class.getClassLoader().getResource("folder/log4j.properties");
objProperties.load(isFile);
或者,这也是:
InputStream ist = Thread.currentThread().getContextClassLoader().getResourceAsStream("folder/log4j.properties");
如果是java web应用程序,请使用link
答案 2 :(得分:-1)
将log4j2.xml的模板存储在您的jar文件资源文件夹中
运行应用程序时,请检查jar文件当前目录中名为log4j2.xml的文件
如果有,请使用它来创建记录器
如果没有,请将模板从jar中复制到jar文件目录,然后使用它创建记录器。
干杯