How to use log4j in an Eclipse RCP?

半世苍凉 提交于 2019-11-30 08:36:49

问题


How to use log4j logging API in an Eclipse RCP project?

As a workaround U tried to create a new OSGI Bundle which has a log4j jars, below is the bundle structure:

I've crated a basic RCP application with a view(template) named loggingtest.I've included the bundle log4j in the dependencies tab of loggingtest project.In the Activator start method i placed the following code

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

so everything is fine so far I'm able to use log4j API and half way through,i was puzzled as where to place the log4j.properties file,how can i proceed further to get a log file with all log statements.

to be more precise below is the content of my manifest file of loggingtest project

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

回答1:


There is a posting how-to setup Log4J in an OSGi-Environment. Also consider using Pax Logging when working with OSGi.




回答2:


i'm using log4j with my RCP app
here's what you should do: just drop log4j plugin (you can get the 'osgified' version from Spring Bundle Repository) and then, drop it to the 'dropin' folder of your eclipse installation.
then, you should add this plugin as a dependencie of your app and on your Activator class, do the following:
URL confURL = getBundle().getEntry("log4j.properties"); PropertyConfigurator.configure(FileLocator.toFileURL(confURL).getFile());

and drop this 'log4j.properties' on your root folder of your app
sorry about my english




回答3:


  1. Add log4j.jar in your project.
  2. Add the reference in MANIFEST.MF. Require-Bundle: org.apache.log4j;bundle-version="1.2.15"
  3. Add the reference in build.properties.

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

  1. Use the logger in .java files.

PropertyConfigurator.configure(log4jConfPath); LOGGER.debug("STARTING APPLICATION ..");

I found this tutorial helpful. Please check - Add log4j to RCP Application



来源:https://stackoverflow.com/questions/7994883/how-to-use-log4j-in-an-eclipse-rcp

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!