log4j配置文件和jar应用程序

时间:2017-08-03 08:30:32

标签: java logging log4j2

我使用log4j2库来管理日志记录过程。 我创建了一个名为log4j2.xml的配置文件,其中包含Appenders和Loggers配置。然后,我在每个类中定义了一个Logger

private static Logger my_logger = LogManager.getLogger(my_class);

我没有在任何地方指定conf文件的名称,所以我认为该库隐式地获取并读取它。

现在,我需要以jar文件的形式提供我的应用程序,因此我需要使配置文件可用,以便用户可以修改和配置它。

在我的情况下,我建议在jar文件的级别创建一个XXX文件夹,其中包含我的应用程序使用的所有配置文件。

我的问题是我怎么能对应用程序说"得到XXX / log4j2.xml"而不是jar中包含的xml。

3 个答案:

答案 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文件目录,然后使用它创建记录器。

干杯