Just as an idea, you could push the process ID onto the NDC (or MDC)
after you fork(), then display it with %x (or %X) in your pattern.

-David
[EMAIL PROTECTED]

P.S. For anyone who knows:
Looking at the documentation for MDC, why does the C++ log4cxx MDC
require JDK 1.2?  Is that mistakenly copied from log4j?


-----Original Message-----
From: Dizzy [mailto:[EMAIL PROTECTED]
Sent: Tuesday, June 13, 2006 7:50 AM
To: log4cxx-user@logging.apache.org
Subject: how to get the process ID from PatternLayout


Hi

I am using log4cxx for some multithreaded AND multiprocess programs (I 
fork() on big operations, I spawn thread using boost::thread on per 
operation tasks). For threads "%t" seems to work fine as it uniquely 
identifies the thread but for processes it seems that "%t" displays 
the same thing for all processes forked from the same parent, like I 
have this output from a test program:

$ ./log4cxxtest 
DEBUG 2006-06-13 11:31:26,455 (2812696064 testApp) message1 
 DEBUG 2006-06-13 11:31:26,457 (2812693424 testApp) newthread: 
message2 
 DEBUG 2006-06-13 11:31:26,457 (2812696064 testApp) oldthread: 
message2 
 DEBUG 2006-06-13 11:31:26,458 (2812696064 testApp) child: message3 
 DEBUG 2006-06-13 11:31:26,458 (2812696064 testApp) parent: message3 

Where 2812696064 and 2812693424 are what %t displays.

So... how can I display something to identify the process using 
PatternLayout ?

Thanks!

-- 
Mihai RUSU                                      Email: [EMAIL PROTECTED]
GPG : http://dizzy.roedu.net/dizzy-gpg.txt      WWW:
http://dizzy.roedu.net
                        "Linux is obsolete" -- AST

Reply via email to