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]> a écrit :
> 
> Hello JB,
> 
> Any news or fix ?
> 
> Thanks regards,
> Michael.
> 
> De : Jean-Baptiste Onofre <[email protected]>
> Envoyé : jeudi 14 janvier 2021 10:16
> À : user <[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