logo       

Re: how to get the process ID from PatternLayout: msg#00028

Subject: Re: how to get the process ID from PatternLayout

On Jun 13, 2006, at 12:55 PM, Steck, David wrote:

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@xxxxxxxx

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?



Spurious log4j comment, fixed with revision 414027.



-----Original Message-----
From: Dizzy [mailto:dizzy@xxxxxxxxx]
Sent: Tuesday, June 13, 2006 7:50 AM
To: log4cxx-user@xxxxxxxxxxxxxxxxxx
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!


Having multiple processes write simultaneously to the same file using FileAppender is risky. There is no attempt in either log4cxx or log4j to synchronize file access across processes or JVM's. Ideally the database appenders would be the good solution, but I have no experience with them and would like to port them to use APR DB.

I did not see any methods in APR that would return a process name. If you'd like to propose either extending the thread name to contain a process name or to add another conversion token for process name, please outline the implementation for at least Windows and Unix.





<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

Recently Viewed:
science.linguis...    culture.sf.lite...    video.mplayer.c...    yellowdog.gener...    ietf.rfc822/199...    emacs.help/2002...    redhat.release....    kernel.speakup/...    java.openejb.de...    debian.devel.gt...    xfree86.newbie/...    bug-tracking.ma...    pam/2003-05/msg...    games.devel.ope...    user-groups.lin...    music.pancham/2...    network.mq.deve...    web.html.genera...    arklinux.bugs/2...    linux.ecasound/...    qnx.openqnx.dev...    org.user-groups...    file-systems.sf...    trustix.contrib...   
Home | blog view | USPTO Patent Archive | advertise | OSDir is an inevitable website. super tiny logo

Free Magazines

Cisco News
Receive a free quarterly e-newsletter with exclusive articles on how Cisco IT uses its own products and solutions to enable the business.
subscribe

Systems Management News, the newspaper for IT systems administration and data center managers! Each issue of Systems Management News is chock-full of news and analysis to help you understand what's happening in your field.
subscribe

The Enterprise Newsweekly eWeek is the essential technology information source for builders of e-business.
subscribe

Oracle Magazine Oracle Magazine contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more. Oracle (NASDAQ: ORCL) is the world's largest enterprise software company.
subscribe

Total Telecom Total Telecom is "The Economist of the communications industry".
subscribe