Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Eclipse RCP插件中访问logback.xml?_Java_Eclipse Rcp_Logback - Fatal编程技术网

Java 如何在Eclipse RCP插件中访问logback.xml?

Java 如何在Eclipse RCP插件中访问logback.xml?,java,eclipse-rcp,logback,Java,Eclipse Rcp,Logback,我创建了一个Eclipse RCP“Hello World”插件,它正在运行并显示主窗口,然后我用logback库创建了第二个名为“logging”的插件,并将这个日志插件作为依赖项添加到主插件中 主插件现在知道logger类,我可以使用它们,但是如何从主插件访问“logback.xml”文件呢?该文件存储在日志插件的“资源”文件夹中 -mainplugin <---knows logging classes, but not reaching logback.xml -logging

我创建了一个Eclipse RCP“Hello World”插件,它正在运行并显示主窗口,然后我用logback库创建了第二个名为“logging”的插件,并将这个日志插件作为依赖项添加到主插件中

主插件现在知道logger类,我可以使用它们,但是如何从主插件访问“logback.xml”文件呢?该文件存储在日志插件的“资源”文件夹中

-mainplugin   <---knows logging classes, but not reaching logback.xml
-logging
|-libs 
|-resources
  |-logback.xml    
-mainpluginlogback.xml是用于日志记录的配置文件,您可以在其中设置日志级别ect。。。正确的?在本例中,它属于mainplugin,而不是日志插件(日志插件只会公开libs文件夹中jar文件的方法)

像这样:

-mainplugin
|-resources
  |-logback.xml
-logging
|-libs 
为了工作,您必须在插件中设置好友策略,并且lockback.xml必须位于类路径(!)中。这是允许日志插件在插件中查找lockback.xml而不需要直接依赖项所必需的

在日志插件的MANIFEST.MF中,您必须添加:

Eclipse-BuddyPolicy: registered
Eclipse-RegisterBuddy: org.logplugin.id
在mainplugin的MANIFEST.MF中,您必须添加:

Eclipse-BuddyPolicy: registered
Eclipse-RegisterBuddy: org.logplugin.id
使用
org.logplugin.id
作为日志插件的id


有关更多信息:

中介绍了更多的介绍,包括另外两种方法。

为什么主插件需要了解logback.xml?“日志记录”没有写入logback.xml的方法吗?在我看来,主插件应该调用“loggin”方法。我使用loggin插件还可以记录主插件中发生的一些事件,所以这些类需要logback.xml在设置级别上做出反应,等等……啊,好吧,所以我必须将配置文件放在主插件中?hibernate也一样吗?我的意思是hibernate.cfg.xml应该也在主插件中吗?因为这对我来说毫无意义,我得到了一个持久性插件,但是配置文件必须位于使用持久性插件的主插件中。但是谢谢你的提示,我会在周一回去工作的时候试试……正常的工作流程是为你要使用的库创建一个插件。这个插件的唯一目的是使API可用,这里不包含任何特定于应用程序的代码。这个库插件可以在其他项目中重用。然后使用库中的主插件。您可以将此库插件视为简单的jar文件。。。您不会将配置文件放在库jar中,是吗?嗯。。。但问题是,如果我想在第三个插件中使用日志,我需要第二个logback.xml,以此类推。。。我无法想象这是解决这个问题的正确方法……当然,您可以创建一个用于保存jar的库插件和第二个带有一系列日志方法和配置文件的“日志”插件。其他插件则依赖于此日志插件并从中调用方法。如果链接断开,则应添加本文的简短概述