一直都在使用Maven和纯Java库进行开发,我从没想过在开发Eclipse插件时发出一些日志语句可能会成为问题。 但是,在Eclipse开发人员的想象中,一切似乎总是在Eclipse环境中,而Eclipse宇宙之外则什么都没有。
如果您使用Google搜索上述标题,您会发现的第一篇文章是有关“平台日志记录工具”的文章。 但是第三库呢? 他们不能使用基于Eclipse的日志框架。
在我的库中,我使用SLF4J API,让用户自己决定要使用哪种日志记录实现(Log4J,Logback,JDK)。 这正是我要在Eclipse中执行的操作。 很难确切地知道该怎么做,但这是这个难题的一部分。
阶段1:开发
这描述了自定义插件开发阶段的步骤。
步骤1:将您的库放入P2存储库
您要在Eclipse中使用的所有内容都必须从P2存储库中安装。 但是我使用的大多数库都在Maven存储库中。 据我所知,没有像“ Maven Central”这样的主P2存储库,而且我在P2存储库中找到的所有库都相当老。 因此,您必须自己创建一个。
幸运的是,有一个名为p2-maven-plugin的Maven 插件可以将您所有的Maven JAR转换为单个P2存储库。 您可以将插件上传到网站的文件夹,也可以直接从本地硬盘安装。
对于此示例,您将需要以下库:
- org.slf4j:slf4j-api:1.6.6
- org.slf4j:slf4j-log4j12:1.6.6
- log4j:log4j:1.2.17
- org.ops4j.pax.logging:pax-logging-api:1.7.0
- org.ops4j.pax.logging:pax-logging-service:1.7.0
- org.ops4j.pax.confman:pax-confman-propsloader:0.2.2
格式“ groupId:artifactid:version”与“ p2-maven-plugin”所使用的格式相同。 要跳过此步骤,您还可以使用http://www.fuin.org/p2-repository/ 。
步骤2:在Eclipse IDE中安装SLF4J API
- 选择“帮助/安装新软件...”。
- 添加P2存储库URL并安装“ slf4j-api”-您可以直接将步骤1中的文件夹与文件URL一起使用,例如:“ file:/ pathtoyour / p2-repository /”。
- 将新安装的“ slf4j.api”添加到您的MANIFEST.MF。
- 照常开始使用SLF4J登录代码。
阶段2:生产
这描述了自定义插件的用户必须完成的任务才能开始使用Log4J进行日志记录。 以下假设您的自定义插件已安装。
步骤1:在Eclipse IDE中安装日志库
- 选择“帮助/安装新软件...”。
- 从Eclipse更新站点安装“ Equinox目标组件”。
- 添加P2存储库URL并安装以下插件:
- Apache Log4j
- OPS4J Pax ConfMan –属性加载器
- OPS4J Pax日志记录–API
- OPS4J Pax日志记录-服务
步骤2:配置PAX日志记录
- 在“ eclipse.ini”中将日志配置的位置设置为“ vmarg
'
-vmargs -Xms40m -Xmx512m -Dbundles.configuration.location=<config-dir>
- 在上面的“ config-dir”中创建一个名为“ services”的文件夹。
- 在“服务”中创建名为“ org.ops4j.pax.logging.properties”的Log4J属性。
log4j.rootLogger=INFO, FILE log4j.appender.FILE=org.apache.log4j.FileAppender log4j.appender.FILE.File=<path-to-your-log> /example.log log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss,SSS} [%t] %-5p %c %x - %m%n log4j.logger.your.package=DEBUG
步骤3:激活PAX日志记录
- 打开“控制台”视图。
- 选择“主机OSGI控制台”。
- 启动以下捆绑包:
start org.eclipse.equinox.cm start org.ops4j.pax.logging.pax-logging-api start org.ops4j.pax.logging.pax-logging-service start org.ops4j.pax.configmanager
现在,您应该能够在配置的“ example.log”文件中看到您的日志语句。
步骤4:更改配置
如果要更改“ org.ops4j.pax.logging.properties”中的配置,只需在OSGI控制台中重新启动PAX Configmanager:
stop org.ops4j.pax.configmanager
start org.ops4j.pax.configmanager
祝您伐木愉快!
参考:来自A Java Developer's Life博客的JCG合作伙伴 Michael Schnell的SLF4J登录Eclipse插件 。
翻译自: https://www.javacodegeeks.com/2013/01/slf4j-logging-in-eclipse-plugins.html