My first question is that the error message you show below indicates that a 
Log4j 2 implementation could not be located. Yet the rest of your email seems 
to be about locating the log4j 2 configuration.

Ralph

On Aug 15, 2013, at 8:33 AM, Roland wrote:

> Hi all Log4j2 / OSGi experts!
> 
> Relates:
> https://issues.apache.org/jira/browse/LOG4J2-159?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
> 
> I recognize that there is a need for discussion how log4j2 can be configured
> and started correctly in an OSGi environment.
> 
> The standard procedure with configuration files in OSGi is to place them in
> a fragmented bundle, so that the host finds the file in the classpath.
> Obviously, there are still problems in beta9.
> 
> Error-msg: StatusLogger Unable to locate a logging implementation, using
> SimpleLogger
> 
> Having spent 2 hours figuring out how Log4j2 reads the configurations I've
> capitulated.
> 
> So,...I want to tell other readers how I would do it. Maybe I can help...
> 
> How I usually load configuration files from fragmented bundles:
> 1. Put the configuration file log4j2.xml to a fragmented bundle.
> (->log4j2-users)
> 2. Implement the "BundleActivator"-interface (OSGi-core) for the
> host-bundle. (->log4j2-devs.)
> 3. Add <Bundle-Activator>my.package.MyBundleActivator</Bundle-Activator> to
> the maven-bundle-plugin instructions
> (...<instructions><Bundle-Activator>...</Bundle-Activator></instructions>)
> in the pom.
> 4. Implement the methode "start(BundleContext context)" so that it loads the
> log4j2.xml on bundle-startup.
> short expample...
> private void readConfiguration(String directory, String filename)
>  {
>    URL url = null;
>    Enumeration<URL> fileurls = null;
>    InputStream is = null;
>    //bundlecontext of host
>    if(bundlecontext != null) {
>      fileurls = bundlecontext.getBundle().findEntries(directory, filename,
> true);  //get url of configuration 
>    }
>    if((fileurls != null) && (fileurls.hasMoreElements())) {
>      url = fileurls.nextElement();  //take the first
>    }
>    if(url != null) {
>      is = url.openStream();
>    }
>    if(is != null) {
>        ...
>        //read stream
>    }
>  }
> 
> This is one of among many possibilities how it can be done.
> 
> Are there better ideas?
> 
> Regards
> Roland
> 
> 
> 
> --
> View this message in context: 
> http://apache-logging.6191.n7.nabble.com/Discussion-about-correct-inicialization-of-log4j2-in-OSGi-context-tp39733.html
> Sent from the Log4j - Users mailing list archive at Nabble.com.
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to