在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
上述配置有什么问题?
答案 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使用-D
来delineate a system property。
此外,您可以/应该删除引号和初始/
,因为引号不是必需的,如果您有初始/
另一种方法,以及我喜欢的方式,因为它不需要编辑.conf
文件,就是将log4j.xml文件放入默认包中。如果您有其他要求阻止您这样做,那么请记住,您必须在开发模式下将log4j.configuration
属性放在应用程序的platform.properties文件中并在IDE中运行应用程序。像这样:
run.args.extra=-J-Dlog4j.configuration=my/package/log4j.xml
编辑:有关NetBeans平台的问题,您可以更好地发布到NetBeans Platform Users论坛。