Hello All,

I still have bugs (by the way is terribly complex configuration with no clear 
documentation).
Here my configuration

log4j2.appender.sift.type = Routing
log4j2.appender.sift.name = Routing
log4j2.appender.sift.routes.type = Routes
log4j2.appender.sift.routes.pattern = \$\$\\\{ctx:camel.contextId\}
log4j2.appender.sift.routes.bundle.type = Route
log4j2.appender.sift.routes.bundle.appender.type = RollingRandomAccessFile
log4j2.appender.sift.routes.bundle.appender.name = 
Bundle-\$\\\{ctx:camel.contextId\}
log4j2.appender.sift.routes.bundle.appender.fileName = 
${karaf.log}/bundle-\$\\\{ctx:camel.contextId\}.log
log4j2.appender.sift.routes.bundle.appender.filePattern = 
${karaf.log}/bundle-\$\\\{ctx:camel.contextId\}.log.%i
log4j2.appender.sift.routes.bundle.appender.append = true
log4j2.appender.sift.routes.bundle.appender.layout.type = PatternLayout
log4j2.appender.sift.routes.bundle.appender.layout.pattern = ${log4j2.pattern}
log4j2.appender.sift.routes.bundle.appender.policies.type = Policies
log4j2.appender.sift.routes.bundle.appender.policies.size.type = 
SizeBasedTriggeringPolicy
log4j2.appender.sift.routes.bundle.appender.policies.size.size = 8MB

The problem is at startup and shutdown all bundle that doesn't have 
camelContext cause this errors
...
e-${ctx:camel.contextId:bundle.name}.log] with data 
[org.apache.logging.log4j.core.appender.rolling.RollingRandomAccessFileManager$FactoryData@74c3f4fd]
org.ops4j.pax.logging.pax-logging-api [log4j2] ERROR : Unable to invoke factory 
method in class 
org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender for 
element RollingRandomAccessFile: java.lang.IllegalStateException: No factory 
method found for class 
org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender
org.ops4j.pax.logging.pax-logging-api [log4j2] ERROR : Cannot access 
RandomAccessFile java.io.IOException: La syntaxe du nom de fichier, de 
répertoire ou de volume est incorrecte
org.ops4j.pax.logging.pax-logging-api [log4j2] ERROR : Could not create plugin 
of type class 
org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender for 
element RollingRandomAccessFile: java.lang.IllegalStateException: 
ManagerFactory 
[org.apache.logging.log4j.core.appender.rolling.RollingRandomAccessFileManager$RollingRandomAccessFileManagerFactory@69cf227a]
 unable to create manager for 
[D:\karaf\apache-karaf-4.3.1\data\log/bundle-${ctx:camel.contextId:bundle.name}.log]
 with data 
[org.apache.logging.log4j.core.appender.rolling.RollingRandomAccessFileManager$FactoryData@59ab51cc]
org.ops4j.pax.logging.pax-logging-api [log4j2] ERROR : Unable to invoke factory 
method in class 
org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender for 
element RollingRandomAccessFile: java.lang.IllegalStateException: No factory 
method found for class 
org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender


My question is how i can provide default key or something like to avoid this 
errors in my karaf ?
Michael.

________________________________
De : michael e <[email protected]>
Envoyé : vendredi 22 janvier 2021 15:16
À : user <[email protected]>
Objet : RE: Configuring MDC logging karaf 4 camel 3.7.0

Hi JB,

I confirm, (for testing you can use my desktop).

Regards,
Michael.

________________________________
De : Jean-Baptiste Onofre <[email protected]>
Envoyé : vendredi 22 janvier 2021 06:09
À : user <[email protected]>
Objet : Re: Configuring MDC logging karaf 4 camel 3.7.0

Hi Michael,

I’ve resumed my test about Camel MDC.

So, I created a simple route like this:

<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0";>

  <camelContext xmlns="http://camel.apache.org/schema/blueprint"; 
useMDCLogging="true">
    <route id="test">
      <from uri="timer:fire?period=5000"/>
      <setBody><constant>Hello World</constant></setBody>
      <to uri="log:test"/>
    </route>
  </camelContext>

</blueprint>

Then, in etc/org.ops4j.pax.logging.cfg, I added:

log4j2.rootLogger.appenderRef.Sift.ref = Routing

…

log4j2.appender.routing.type = Routing
log4j2.appender.routing.name = Routing
log4j2.appender.routing.routes.type = Routes
log4j2.appender.routing.routes.pattern = \$\$\\\{ctx:bundle.name\}
log4j2.appender.routing.routes.bundle.type = Route
log4j2.appender.routing.routes.bundle.appender.type = RollingRandomAccessFile
log4j2.appender.routing.routes.bundle.appender.name = 
Bundle-\$\\\{ctx:bundle.name\}
log4j2.appender.routing.routes.bundle.appender.fileName = 
${karaf.log}/camel-context-\$\\\{ctx:camel.contextId\}.log
log4j2.appender.routing.routes.bundle.appender.filePattern = 
${karaf.log}/bundle-\$\\\{ctx:bundle.name\}.log.%i
log4j2.appender.routing.routes.bundle.appender.append = true
log4j2.appender.routing.routes.bundle.appender.layout.type = PatternLayout
log4j2.appender.routing.routes.bundle.appender.layout.pattern = 
${log4j2.pattern}
log4j2.appender.routing.routes.bundle.appender.policies.type = Policies
log4j2.appender.routing.routes.bundle.appender.policies.size.type = 
SizeBasedTriggeringPolicy
log4j2.appender.routing.routes.bundle.appender.policies.size.size = 8MB

You can see the fileName containing camel.contextId.

In data/log, I can see the log file created for my Camel Context: 
camel-context-camel-1.log containing:

2021-01-22T06:07:28,801 | INFO  | Blueprint Event Dispatcher: 1 | 
JmxManagementStrategy            | 88 - org.apache.camel.camel-management - 
3.7.0 | JMX is enabled
2021-01-22T06:07:28,890 | INFO  | Blueprint Event Dispatcher: 1 | 
AbstractCamelContext             | 65 - org.apache.camel.camel-base-engine - 
3.7.0 | Apache Camel 3.7.0 (camel-1) is starting
2021-01-22T06:07:28,892 | INFO  | Blueprint Event Dispatcher: 1 | 
AbstractCamelContext             | 65 - org.apache.camel.camel-base-engine - 
3.7.0 | MDC logging is enabled on CamelContext: camel-1
2021-01-22T06:07:28,968 | INFO  | Blueprint Event Dispatcher: 1 | 
AbstractCamelContext             | 65 - org.apache.camel.camel-base-engine - 
3.7.0 | StreamCaching is not in use. If using streams then it's recommended to 
enable stream caching. See more details at 
http://camel.apache.org/stream-caching.html
2021-01-22T06:07:28,998 | INFO  | Blueprint Event Dispatcher: 1 | 
InternalRouteStartupManager      | 65 - org.apache.camel.camel-base-engine - 
3.7.0 | Route: test started and consuming from: timer://fire
2021-01-22T06:07:29,003 | INFO  | Blueprint Event Dispatcher: 1 | 
AbstractCamelContext             | 65 - org.apache.camel.camel-base-engine - 
3.7.0 | Total 1 routes, of which 1 are started
2021-01-22T06:07:29,004 | INFO  | Blueprint Event Dispatcher: 1 | 
AbstractCamelContext             | 65 - org.apache.camel.camel-base-engine - 
3.7.0 | Apache Camel 3.7.0 (camel-1) started in 112ms
2021-01-22T06:07:30,017 | INFO  | Camel (camel-1) thread #1 - timer://fire | 
test                             | 63 - org.apache.camel.camel-api - 3.7.0 | 
Exchange[ExchangePattern: InOnly, BodyType: String, Body: Hello World]

So, all good.

Can you confirm that if you use this on your machine it doesn’t work ?

I’m looking for a Windows VM to test.

Regards
JB

Le 21 janv. 2021 à 10:31, michael e 
<[email protected]<mailto:[email protected]>> a écrit :

Hello JB,

Any news or fix ?

Thanks regards,
Michael.

________________________________
De : Jean-Baptiste Onofre <[email protected]<mailto:[email protected]>>
Envoyé : jeudi 14 janvier 2021 10:16
À : user <[email protected]<mailto:[email protected]>>
Objet : Re: Configuring MDC logging karaf 4 camel 3.7.0

Oh my bad, I completely forget the Windows test ;)

I will do it just after AMQ release. For the tracking I will create a Jira.

I’m very sorry.

Regards
JB

Le 14 janv. 2021 à 10:03, michael e 
<[email protected]<mailto:[email protected]>> a écrit :

Hi JB,

Any news about this ?

Regards,
Michael.

________________________________

De : Jean-Baptiste Onofre <[email protected]<mailto:[email protected]>>
Envoyé : mercredi 6 janvier 2021 17:21
À : [email protected]<mailto:[email protected]> 
<[email protected]<mailto:[email protected]>>
Objet : Re: Configuring MDC logging karaf 4 camel 3.7.0

Hi Michael,

Happy new year too !

I forgot during end of year vacation. I’m busy with ActiveMQ release 
preparation now, but I will switch back to test on Windows tomorrow.

Regards
JB

Le 6 janv. 2021 à 17:07, michael e 
<[email protected]<mailto:[email protected]>> a écrit :

Hello JB,

Happy new year, any news about this ?

Thanks,
Michael.

________________________________

De : JB Onofré <[email protected]<mailto:[email protected]>>
Envoyé : jeudi 24 décembre 2020 17:00
À : [email protected]<mailto:[email protected]> 
<[email protected]<mailto:[email protected]>>
Objet : Re: Configuring MDC logging karaf 4 camel 3.7.0

I would consider as a big if I have the error on Windows.

I’m suspecting an issue on Windows only (I hate this os ;) ).

Let me setup a vm (just need time).

Regard
JB

Le 24 déc. 2020 à 16:36, michael e 
<[email protected]<mailto:[email protected]>> a écrit :


Ok thanks so is a bug ? Or i just have to change something ? (This is the 
provided configuration i didn't change anythin expect fileName pattern)

Regards,
Michael.

________________________________

De : JB Onofré <[email protected]<mailto:[email protected]>>
Envoyé : jeudi 24 décembre 2020 16:23
À : [email protected]<mailto:[email protected]> 
<[email protected]<mailto:[email protected]>>
Objet : Re: Configuring MDC logging karaf 4 camel 3.7.0

Understood. I don’t have any error. The error you have seems related to the 
rolling file configuration.

Regards
JB

Le 24 déc. 2020 à 15:16, michael e 
<[email protected]<mailto:[email protected]>> a écrit :


Ok thanks  'All log files are created and populated' for me also just then in 
the karaf i see ERROR logs

Thanks,
Regards,
Michael.

________________________________

De : JB Onofré <[email protected]<mailto:[email protected]>>
Envoyé : jeudi 24 décembre 2020 15:05
À : [email protected]<mailto:[email protected]> 
<[email protected]<mailto:[email protected]>>
Objet : Re: Configuring MDC logging karaf 4 camel 3.7.0

Yeah. I tried with the karaf camel examples. All log files are created and 
populated.

I will bootstrap a Windows vm to test.

Regards
JB

Le 24 déc. 2020 à 14:52, michael e 
<[email protected]<mailto:[email protected]>> a écrit :


No it is a last fresh download version ok Karaf (4.3.0) did you try with camel 
MDC properties ? And no permission issues.

Michael.

________________________________

De : JB Onofré <[email protected]<mailto:[email protected]>>
Envoyé : jeudi 24 décembre 2020 14:42
À : [email protected]<mailto:[email protected]> 
<[email protected]<mailto:[email protected]>>
Objet : Re: Configuring MDC logging karaf 4 camel 3.7.0

By the way, you don’t have any permission issue ?

Le 24 déc. 2020 à 14:42, JB Onofré 
<[email protected]<mailto:[email protected]>> a écrit :


Do you use karaf vanilla or a custom distribution ?

I confirm that it works fine for me on Karaf vanilla (at least on Linux).

Regards
JB

Le 24 déc. 2020 à 14:02, michael e 
<[email protected]<mailto:[email protected]>> a écrit :


I also add the absolute path i also get exception

my configuration:

# Sift - MDC routing
log4j2.appender.routing.type = Routing
log4j2.appender.routing.name = Routing
log4j2.appender.routing.routes.type = Routes
log4j2.appender.routing.routes.pattern = \$\$\\\{ctx:bundle.name\}
log4j2.appender.routing.routes.bundle.type = Route
log4j2.appender.routing.routes.bundle.appender.type = RollingRandomAccessFile
log4j2.appender.routing.routes.bundle.appender.name = 
Bundle-\$\\\{ctx:bundle.name\}
log4j2.appender.routing.routes.bundle.appender.fileName = 
D:/karaf/apache-karaf-4.3.0/data/log/bundle-\$\\\{ctx:camel.contextId\}.log
log4j2.appender.routing.routes.bundle.appender.filePattern = 
${karaf.log}/bundle-\$\\\{ctx:bundle.name\}.log.%i
log4j2.appender.routing.routes.bundle.appender.append = true
log4j2.appender.routing.routes.bundle.appender.layout.type = PatternLayout
log4j2.appender.routing.routes.bundle.appender.layout.pattern = 
${log4j2.pattern}
log4j2.appender.routing.routes.bundle.appender.policies.type = Policies
log4j2.appender.routing.routes.bundle.appender.policies.size.type = 
SizeBasedTriggeringPolicy
log4j2.appender.routing.routes.bundle.appender.policies.size.size = 8MB

Exception:

org.ops4j.pax.logging.pax-logging-log4j2 [log4j2] ERROR : Cannot access 
RandomAccessFile java.io.IOException: La syntaxe du nom de fichier, de 
répertoire ou de volume est incorrecte
org.ops4j.pax.logging.pax-logging-log4j2 [log4j2] ERROR : Could not create 
plugin of type class 
org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender for 
element RollingRandomAccessFile: java.lang.IllegalStateException: 
ManagerFactory 
[org.apache.logging.log4j.core.appender.rolling.RollingRandomAccessFileManager$RollingRandomAccessFileManagerFactory@7ab1ab29]
 unable to create manager for 
[D:/karaf/apache-karaf-4.3.0/data/log/bundle-${ctx:camel.contextId}.log] with 
data 
[org.apache.logging.log4j.core.appender.rolling.RollingRandomAccessFileManager$FactoryData@3219c6e6]
org.ops4j.pax.logging.pax-logging-log4j2 [log4j2] ERROR : Unable to invoke 
factory method in class 
org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender for 
element RollingRandomAccessFile: java.lang.IllegalStateException: No factory 
method found for class 
org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender
org.ops4j.pax.logging.pax-logging-log4j2 [log4j2] ERROR : Unable to create 
Appender of type RollingRandomAccessFile

Regards,
Michael.

________________________________

De : Jean-Baptiste Onofre <[email protected]<mailto:[email protected]>>
Envoyé : jeudi 24 décembre 2020 07:13
À : [email protected]<mailto:[email protected]> 
<[email protected]<mailto:[email protected]>>
Objet : Re: Configuring MDC logging karaf 4 camel 3.7.0

Hi,

I just tested the configuration I provided in etc/org.ops4j.pax.logging.cfg.

Here’s my config (in etc/org.ops4j.pax.logging.cfg):

First, I’ve enabled sift appender:

log4j2.rootLogger.appenderRef.Sift.ref = Routing

Then, I added the appender:

log4j2.appender.routing.type = Routing
log4j2.appender.routing.name = Routing
log4j2.appender.routing.routes.type = Routes
log4j2.appender.routing.routes.pattern = \$\$\\\{ctx:bundle.name\}
log4j2.appender.routing.routes.bundle.type = Route
log4j2.appender.routing.routes.bundle.appender.type = RollingRandomAccessFile
log4j2.appender.routing.routes.bundle.appender.name = 
Bundle-\$\\\{ctx:bundle.name\}
log4j2.appender.routing.routes.bundle.appender.fileName = 
${karaf.log}/bundle-\$\\\{ctx:bundle.name\}.log
log4j2.appender.routing.routes.bundle.appender.filePattern = 
${karaf.log}/bundle-\$\\\{ctx:bundle.name\}.log.%i
log4j2.appender.routing.routes.bundle.appender.append = true
log4j2.appender.routing.routes.bundle.appender.layout.type = PatternLayout
log4j2.appender.routing.routes.bundle.appender.layout.pattern = 
${log4j2.pattern}
log4j2.appender.routing.routes.bundle.appender.policies.type = Policies
log4j2.appender.routing.routes.bundle.appender.policies.size.type = 
SizeBasedTriggeringPolicy
log4j2.appender.routing.routes.bundle.appender.policies.size.size = 8MB

And it works fine.

It seems that your problem is about Windows.
You are mixing windows style path with Unix style.

For fileName and filePattern, can you please use absolution path. Something 
like:

log4j2.appender.routing.routes.bundle.appender.fileName = 
D:\karaf\apache-karaf-4.3.0\bundle-\$\\\{ctx:bundle.name\}.log

It should work.

Regards
JB

Le 23 déc. 2020 à 10:58, michael e 
<[email protected]<mailto:[email protected]>> a écrit :

Hello,

I'm getting in trouble trying to configure MDC logging with latest Karaf and 
Camel Version

Here my logging configuration

log4j2.appender.routing.type = Routing
log4j2.appender.routing.name = Routing
log4j2.appender.routing.routes.type = Routes
log4j2.appender.routing.routes.pattern = \$\$\\\{ctx:bundle.name\}
log4j2.appender.routing.routes.bundle.type = Route
log4j2.appender.routing.routes.bundle.appender.type = RollingRandomAccessFile
log4j2.appender.routing.routes.bundle.appender.name = 
Bundle-\$\\\{ctx:bundle.name\}
log4j2.appender.routing.routes.bundle.appender.fileName = 
${karaf.data}/log/sift-camel-\$\\\{ctx:camel.contextId\}.log
log4j2.appender.routing.routes.bundle.appender.filePattern = 
${karaf.log}/bundle-\$\\\{ctx:bundle.name\}.log.%i
log4j2.appender.routing.routes.bundle.appender.append = true
log4j2.appender.routing.routes.bundle.appender.layout.type = PatternLayout
log4j2.appender.routing.routes.bundle.appender.layout.pattern = 
${log4j2.pattern}
log4j2.appender.routing.routes.bundle.appender.policies.type = Policies
log4j2.appender.routing.routes.bundle.appender.policies.size.type = 
SizeBasedTriggeringPolicy
log4j2.appender.routing.routes.bundle.appender.policies.size.size = 8MB

Logging file is correctly created but i get exception in my Karaf


karaf@root()> org.ops4j.pax.logging.pax-logging-log4j2 [log4j2] ERROR : Cannot 
access RandomAccessFile java.io.IOException: La syntaxe du nom de fichier, de 
répertoire ou de volume est incorrecte
org.ops4j.pax.logging.pax-logging-log4j2 [log4j2] ERROR : Could not create 
plugin of type class 
org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender for 
element RollingRandomAccessFile: java.lang.IllegalStateException: 
ManagerFactory 
[org.apache.logging.log4j.core.appender.rolling.RollingRandomAccessFileManager$RollingRandomAccessFileManagerFactory@26d9daed]
 unable to create manager for 
[D:\karaf\apache-karaf-4.3.0\data/log/sift-camel-${ctx:camel.contextId}.log] 
with data 
[org.apache.logging.log4j.core.appender.rolling.RollingRandomAccessFileManager$FactoryData@34bd66be]
org.ops4j.pax.logging.pax-logging-log4j2 [log4j2] ERROR : Unable to invoke 
factory method in class 
org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender for 
element RollingRandomAccessFile: java.lang.IllegalStateException: No factory 
method found for class 
org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender
org.ops4j.pax.logging.pax-logging-log4j2 [log4j2] ERROR : Unable to create 
Appender of type RollingRandomAccessFile
org.ops4j.pax.logging.pax-logging-log4j2 [log4j2] ERROR : Cannot access 
RandomAccessFile java.io.IOException: La syntaxe du nom de fichier, de 
répertoire ou de volume est incorrecte
org.ops4j.pax.logging.pax-logging-log4j2 [log4j2] ERROR : Could not create 
plugin of type class 
org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender for 
element RollingRandomAccessFile: java.lang.IllegalStateException: 
ManagerFactory 
[org.apache.logging.log4j.core.appender.rolling.RollingRandomAccessFileManager$RollingRandomAccessFileManagerFactory@26d9daed]
 unable to create manager for 
[D:\karaf\apache-karaf-4.3.0\data/log/sift-camel-${ctx:camel.contextId}.log] 
with data 
[org.apache.logging.log4j.core.appender.rolling.RollingRandomAccessFileManager$FactoryData@19f28b4]
org.ops4j.pax.logging.pax-logging-log4j2 [log4j2] ERROR : Unable to invoke 
factory method in class 
org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender for 
element RollingRandomAccessFile: java.lang.IllegalStateException: No factory 
method found for class 
org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender
org.ops4j.pax.logging.pax-logging-log4j2 [log4j2] ERROR : Unable to create 
Appender of type RollingRandomAccessFile

There is updated documentation about how to configure ?

Michael.

Reply via email to