2017-10-02 6:43 GMT+02:00 Asma Zinneera Jabir <[email protected]>:
>
> 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
>
You can configure the properties directly in the
etc/org.ops4j.pax.logging.cfg too.
>
> 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.
>
For this, you just need to register an OSGi service implementing
org.ops4j.pax.logging.spi.PaxAppender and it will be given all log events.
> 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.
>
Yes, that's doable without any problems. The thing you need to pay
attention to is if the main configuration has an indirection to another
file, in which case, you'd have to modify that file instead. The reason
for this indirection is that at first, properties-based configuration was
not available, so the main config would contain a pointer to the xml config.
Now, if you control everything, just make sure the configuration is
flattened in the org.ops4j.pax.logging configuration and it should be ok.
Cheers,
Guillaume Nodet
>
>
> 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.MetaDataIndexTemplateServ
>> ice.validateAndAddTemplate(MetaDataIndexTemplateService.java:216)
>> [88:features.boss.elasticsearch.bundle:5.5.0]
>> at org.elasticsearch.cluster.metadata.MetaDataIndexTemplateServ
>> ice.access$200(MetaDataIndexTemplateService.java:63)
>> [88:features.boss.elasticsearch.bundle:5.5.0]
>> at org.elasticsearch.cluster.metadata.MetaDataIndexTemplateServ
>> ice$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.calculateTa
>> skOutputs(ClusterService.java:612) [88:features.boss.elasticsearc
>> h.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$ClusterServ
>> iceTaskBatcher.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$Conte
>> xtPreservingRunnable.run(ThreadContext.java:569)
>> [88:features.boss.elasticsearch.bundle:5.5.0]
>> at org.elasticsearch.common.util.concurrent.PrioritizedEsThread
>> PoolExecutor$TieBreakingPrioritizedRunnable.runAndClean(Prio
>> ritizedEsThreadPoolExecutor.java:247) [88:features.boss.elasticsearc
>> h.bundle:5.5.0]
>> at org.elasticsearch.common.util.concurrent.PrioritizedEsThread
>> PoolExecutor$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 - [email protected]
>
> ---
> 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 [email protected].
> For more options, visit https://groups.google.com/d/optout.
>
--
------------------------
Guillaume Nodet
--
--
------------------
OPS4J - http://www.ops4j.org - [email protected]
---
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 [email protected].
For more options, visit https://groups.google.com/d/optout.