如何在NetBeans平台应用程序中打包log4j配置文件?

时间:2011-11-11 07:49:38

标签: configuration log4j netbeans-platform

在NetBeans平台应用程序中打包log4j配置文件显然需要一些思考。这就是我试过的......

我将log4j.xml放在some_netbeans_module的src / main / resources / my / package / log4j.xml中。该包是一个公共模块包(即该包中的类从其他包中使用)。我重建了模块并确认该文件实际上已打包到模块中。

在我的课程中,我按照以往的方式获得了记录器的实例:

static final Logger log = Logger.getLogger(ThisClass.class);

每个NetBeans平台应用程序都有一个my_app.conf文件,可以设置某些属性。这是我设置log4j.conf的地方:

log4j.configuration="/my/package/log4j.xml"

现在,当我运行应用程序时,我看到以下输出:

[INFO] /home/me/my_app/application/target/my_app/bin/../etc/my_app.conf: 5:
log4j.configuration=/my/package/log4j.xml: not found

上述配置有什么问题?

1 个答案:

答案 0 :(得分:2)

如果您将my_app.conf属性附加到log4j.configuration属性,请在default_options文件中,如下所示:

default_options="...<other options> -J-Dlog4j.configuration=my/package/log4j.xml"

然后此选项将传递给JVM。请注意,log4j属性附加了-J-D。 NetBeans使用-J来描述JVM属性,JVM使用-Ddelineate a system property

此外,您可以/应该删除引号和初始/,因为引号不是必需的,如果您有初始/

,NetBeans会抱怨

另一种方法,以及我喜欢的方式,因为它不需要编辑.conf文件,就是将log4j.xml文件放入默认包中。如果您有其他要求阻止您这样做,那么请记住,您必须在开发模式下将log4j.configuration属性放在应用程序的platform.properties文件中并在IDE中运行应用程序。像这样:

run.args.extra=-J-Dlog4j.configuration=my/package/log4j.xml

编辑:有关NetBeans平台的问题,您可以更好地发布到NetBeans Platform Users论坛。