How many servlets do you have?

You could try:
xLog = getLogger(ServletY.getClass().getName()); 
Then make one appender per servlet.

Are you saying that you want the class X to log to the log of the servlet
that called it?

James Stauffer


-----Original Message-----
From: Horry, Adam J [mailto:[EMAIL PROTECTED] 
Sent: Friday, June 11, 2004 12:06 PM
To: [EMAIL PROTECTED]
Subject: Separate log file per servlet


The web server is configured to be one JVM for all the servlets. 
Numerous people are developing different classes. We want each 
Servlet to write to its own log. 

Class X 
{ 
 ... 
 xLog = getLogger( "DEBUG" ); 
 ... 
 xLog.info( "message" ); 
 ... 
} 

Class ServletY extends HttpServlet 
{ 
 ... 
 xLog = getLogger( "DEBUG" ); 
 ... 
 configureAndWatch( ); 
 ... 
 xLog.info( "message" ); 
 ... 
 someMethod() 
 { 
  new X(); 
 } 
} 

Class ServletZ extends HttpServlet 
{ 
 ... 
 xLog = getLogger( "DEBUG" ); 
 ... 
 configureAndWatch( ); 
 ... 
 xLog.info( "message" ); 
 ... 
 someMethod() 
 { 
  new X(); 
 } 
 ... 
} 

log4j.properties: 
 ... 
 Logger name="DEBUG" 
 Appender A 
 ... 
 Appender A 
 ... 

Class A extends DailyRollingFileAppender 
{ 
 String _file = null; 

 a( ) 
 { 
  super.init(); 
  setFile( "" ); 
 } 

 setFile( aFile ) 
 { 
  // Throw stack trace to figure out which servlet called you 
  ... 
  // add path and .log to get filename like /tmp/ServletY.log or 
  // /tmp/ServletZ.log 
  _file = "newFile"; 
 } 
} 

Now the problem: When the first servlet comes up, say ServletY, it 
configures and creates /tmp/ServletY.log. ServletY and X write to 
the file and everyone is happy. Now the next servlet comes up, say 
ServletZ. It configures and creates /tmp/ServletX.log. Now 
everything writes to this log but not the other. 

So I guess what I am looking for is how I can I do logging on a 
servlet basis that writes to a particular log. The various support 
classes need to call something generic because they do not know 
which specific servlet called them. 

Thanks, 
Adam

[EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to