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
david.steck@lmco.com
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:dizzy@roedu.net]
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: dizzy@roedu.net
GPG : http://dizzy.roedu.net/dizzy-gpg.txt WWW:
http://dizzy.roedu.net
"Linux is obsolete" -- AST
|