The way I have configured Log4j2 is through the following entry in 
pax-logging.properties.

org.ops4j.pax.logging.log4j2.config.file=path/to/log4j2.properties

So when I try:

Hashtable<String, Object> log4jProps = new Hashtable<String, Object>();
log4jProps.put( "appender.CONSOLE.layout.pattern", "[%d] %5p {%c} - 
%m%ex%n" );
configuration.update(log4jProps);

This will add another entry into pax-logging.properties as 
appender.CONSOLE.layout.pattern 
= [%d] %5p {%c} - %m%ex%n which makes all the entries in 
pax-logging.properties invalid. 

To make my requirement clear, I have two things to do.

1. I have a Log4J2 custom memory appender in which writes log events to a 
circular buffer. During the runtime, I need to display these logs in the 
UI. For this, I should be able to get the memory appender form the log4j2 
context.
2. I need to give an option to the user to reconfigure all the appenders 
during runtime throught the UI. For this, I should be able to reconfigure 
the specified properties of appenders programatically.


On Wednesday, August 9, 2017 at 9:00:12 PM UTC+5:30, Jérémie Brébec wrote:
>
> Hello,
>
> I am using pax-logging 1.10.1 through Karaf 4.1.2 ;
>
> I am trying to integrate the log generated by my ElasticSearch bundle to 
> the pax-logging implementation. However, this didn't work because a 
> ClassCastException. I haven't see any "duplicate classloader issues", and 
> when I check the code, the ClassCastException doesn't feel to be 
> osgi-related. Is it a known issue or I am missing something ?
>
> Regards,
> Jérémie
>
> java.lang.ClassCastException: 
> org.ops4j.pax.logging.log4jv2.Log4jv2LoggerContext cannot be cast to 
> org.apache.logging.log4j.core.LoggerContext
>         at 
> org.apache.logging.log4j.core.LoggerContext.getContext(LoggerContext.java:190)
>  
> [6:org.ops4j.pax.logging.pax-logging-log4j2:1.10.1]
>         at 
> org.apache.logging.log4j.core.config.Configurator.setLevel(Configurator.java:291)
>  
> [6:org.ops4j.pax.logging.pax-logging-log4j2:1.10.1]
>         at 
> org.elasticsearch.common.logging.Loggers.setLevel(Loggers.java:149) 
> [88:features.boss.elasticsearch.bundle:5.5.0]
>         at 
> org.elasticsearch.common.logging.Loggers.setLevel(Loggers.java:144) 
> [88:features.boss.elasticsearch.bundle:5.5.0]
>         at 
> org.elasticsearch.index.SearchSlowLog.setLevel(SearchSlowLog.java:111) 
> [88:features.boss.elasticsearch.bundle:5.5.0]
>         at 
> org.elasticsearch.index.SearchSlowLog.<init>(SearchSlowLog.java:106) 
> [88:features.boss.elasticsearch.bundle:5.5.0]
>         at 
> org.elasticsearch.index.IndexModule.<init>(IndexModule.java:127) 
> [88:features.boss.elasticsearch.bundle:5.5.0]
>         at 
> org.elasticsearch.indices.IndicesService.createIndexService(IndicesService.java:441)
>  
> [88:features.boss.elasticsearch.bundle:5.5.0]
>         at 
> org.elasticsearch.indices.IndicesService.createIndex(IndicesService.java:414) 
> [88:features.boss.elasticsearch.bundle:5.5.0]
>         at 
> org.elasticsearch.cluster.metadata.MetaDataIndexTemplateService.validateAndAddTemplate(MetaDataIndexTemplateService.java:216)
>  
> [88:features.boss.elasticsearch.bundle:5.5.0]
>         at 
> org.elasticsearch.cluster.metadata.MetaDataIndexTemplateService.access$200(MetaDataIndexTemplateService.java:63)
>  
> [88:features.boss.elasticsearch.bundle:5.5.0]
>         at 
> org.elasticsearch.cluster.metadata.MetaDataIndexTemplateService$2.execute(MetaDataIndexTemplateService.java:172)
>  
> [88:features.boss.elasticsearch.bundle:5.5.0]
>         at 
> org.elasticsearch.cluster.ClusterStateUpdateTask.execute(ClusterStateUpdateTask.java:45)
>  
> [88:features.boss.elasticsearch.bundle:5.5.0]
>         at 
> org.elasticsearch.cluster.service.ClusterService.executeTasks(ClusterService.java:634)
>  
> [88:features.boss.elasticsearch.bundle:5.5.0]
>         at 
> org.elasticsearch.cluster.service.ClusterService.calculateTaskOutputs(ClusterService.java:612)
>  
> [88:features.boss.elasticsearch.bundle:5.5.0]
>         at 
> org.elasticsearch.cluster.service.ClusterService.runTasks(ClusterService.java:571)
>  
> [88:features.boss.elasticsearch.bundle:5.5.0]
>         at 
> org.elasticsearch.cluster.service.ClusterService$ClusterServiceTaskBatcher.run(ClusterService.java:263)
>  
> [88:features.boss.elasticsearch.bundle:5.5.0]
>         at 
> org.elasticsearch.cluster.service.TaskBatcher.runIfNotProcessed(TaskBatcher.java:150)
>  
> [88:features.boss.elasticsearch.bundle:5.5.0]
>         at 
> org.elasticsearch.cluster.service.TaskBatcher$BatchedTask.run(TaskBatcher.java:188)
>  
> [88:features.boss.elasticsearch.bundle:5.5.0]
>         at 
> org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:569)
>  
> [88:features.boss.elasticsearch.bundle:5.5.0]
>         at 
> org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.runAndClean(PrioritizedEsThreadPoolExecutor.java:247)
>  
> [88:features.boss.elasticsearch.bundle:5.5.0]
>         at 
> org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedEsThreadPoolExecutor.java:210)
>  
> [88:features.boss.elasticsearch.bundle:5.5.0]
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>  
> [?:?]
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>  
> [?:?]
>

-- 
-- 
------------------
OPS4J - http://www.ops4j.org - ops4j@googlegroups.com

--- 
You received this message because you are subscribed to the Google Groups 
"OPS4J" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to ops4j+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to