2011-11-03 49 views
7

如何在eclipse rcp项目中使用log4j logging API?作为一种解决方法,我尝试创建一个具有log4j jar的新OSGI Bundle,下面是bundle结构。如何在eclipse rcp中使用log4j

log4j an external plugin

我装箱,以期(模板)命名loggingtest .I've基本RCP应用程序包含在loggingtest project.In活化剂的依赖性选项卡捆绑的log4j启动方法我把下面的代码

Logger logger = Logger.getLogger(Activator.class); 
logger.info("Info starting"); 
logger.warn("Warning starting"); 
logger.error("Error starting"); 

所以一切都很好,到目前为止我能使用log4j的API,并完成了一半,我感到不解的地方放置log4j.prope rties文件,我如何继续进一步获取所有日志语句的日志文件。

更精确下面是我的清单文件的loggingtest项目

Manifest-Version: 1.0 
Bundle-ManifestVersion: 2 
Bundle-Name: LoggingTest 
Bundle-SymbolicName: LoggingTest; singleton:=true 
Bundle-Version: 1.0.0.qualifier 
Bundle-Activator: loggingtest.Activator 
Require-Bundle: org.eclipse.ui, 
org.eclipse.core.runtime, 
log4j;bundle-version="1.0.0" 
Bundle-ActivationPolicy: lazy 
Bundle-RequiredExecutionEnvironment: JavaSE-1.6 
+0

只要有人不依赖于log4j,Eclipse RCP就会提供自己的日志工具 - https://wiki.eclipse.org/FAQ_How_do_I_use_the_platform_logging_facility%3F,它可以让您在Eclipse平台上工作而无需手动入侵。 –

回答

5

的内容有一个posting如何对设置Log4J的在OSGi的环境。在使用OSGi时,请考虑使用Pax Logging。

+1

跟在IDE中运行的相同文章相当不错,当我尝试导出产品时无法生成日志文件 – srk

+0

使用-console启动产品,并通过OSGi-console检查日志包和碎片是否已加载并启动... –

+1

我忘了添加lo4j。属性到二进制构建路径,并最终它为我添加后构建路径,感谢 – srk

3

我使用log4j的与我的RCP应用
这里是你应该做的:刚落log4j的插件(你可以从春捆绑库的“osgified”版本),然后拖放到“脱入”文件夹你的eclipse安装。
那么,你应该增加这个插件为您的应用dependencie和你的Activator类,请执行下列操作:
URL confURL = getBundle().getEntry("log4j.properties"); PropertyConfigurator.configure(FileLocator.toFileURL(confURL).getFile());

,并放弃这一“log4j.properties”在您的应用程序
对不起你的根文件夹关于我的英语

0
  1. 在您的项目中添加log4j.jar。
  2. 在MANIFEST.MF中添加参考。 Require-Bundle: org.apache.log4j;bundle-version="1.2.15"
  3. 在build.properties中添加引用。

bin.includes = plugin.xml,\ META-INF/,\ .,\ lib/log4j-1.2.17.jar

  • 使用在.java文件记录器。
  • PropertyConfigurator.configure(log4jConfPath); LOGGER.debug("STARTING APPLICATION ..");

    我发现这个教程的帮助。请检查 - Add log4j to RCP Application

    相关问题