You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by pi...@locus.apache.org on 2000/09/26 23:39:56 UTC

cvs commit: jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/logging JasperLogger.java

pierred     00/09/26 14:39:55

  Modified:    jasper/src/share/org/apache/jasper/logging JasperLogger.java
  Log:
  May now log to ServletContext::log() when instantiated with
  a ServletContext.
  
  Revision  Changes    Path
  1.2       +31 -11    jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/logging/JasperLogger.java
  
  Index: JasperLogger.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/logging/JasperLogger.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- JasperLogger.java	2000/08/12 00:52:11	1.1
  +++ JasperLogger.java	2000/09/26 21:39:53	1.2
  @@ -62,6 +62,7 @@
   
   import java.util.Date;
   import javax.servlet.ServletException;
  +import javax.servlet.ServletContext;
   
   import org.apache.jasper.util.Queue;
   //import org.apache.jasper.core.JasperException;
  @@ -147,10 +148,21 @@
       static LogDaemon logDaemon = null;
       static Queue     logQueue  = null;
   
  +    ServletContext servletContext = null;
  +
  +    public JasperLogger(ServletContext servletContext) {
  +	this.servletContext = servletContext;
  +	init();
  +    }
  +
       public JasperLogger() {
  +	init();
  +    }
  +
  +    private void init() {
   	if (logDaemon == null || logQueue == null) {
   	    logQueue = new Queue();
  -	    logDaemon = new LogDaemon(logQueue);
  +	    logDaemon = new LogDaemon(logQueue, servletContext);
   	    logDaemon.start();
   	}
       }
  @@ -196,24 +208,30 @@
    * writes out everything in the queue to the sink.
    */
   class LogDaemon extends Thread {
  -    LogDaemon(Queue logQueue) {
  +    LogDaemon(Queue logQueue, ServletContext servletContext) {
   	this.logQueue = logQueue;
  +	this.servletContext = servletContext;
   	setDaemon(true);
       }
   
       static char[] newline;
  +    static String separator;
       static {
  -	String separator = System.getProperty("line.separator", "\n");
  +	separator = System.getProperty("line.separator", "\n");
   	newline = separator.toCharArray();
       }
       
       Runnable flusher = new Runnable() {
  -	    public void run() {
  -		do {
  -		    JasperLogger.LogEntry logEntry =
  -		      (JasperLogger.LogEntry) LogDaemon.this.logQueue.pull();
  +	public void run() {
  +	    do {
  +		JasperLogger.LogEntry logEntry =
  +		    (JasperLogger.LogEntry) LogDaemon.this.logQueue.pull();
  +		if (servletContext != null) {
  +		    servletContext.log(logEntry.toString());
  +		    servletContext.log(separator);
  +		} else {
   		    Writer writer = logEntry.getWriter();
  -		    if (writer != null)
  +		    if (writer != null) {
   			try {
   			    writer.write(logEntry.toString());
   			    writer.write(newline);
  @@ -221,9 +239,10 @@
   			} catch (Exception ex) { // IOException
   			    ex.printStackTrace(); // nowhere else to write it
   			}
  -		} while (!LogDaemon.this.logQueue.isEmpty());
  -	    }
  -    };
  +		    }
  +		}
  +	    } while (!LogDaemon.this.logQueue.isEmpty());
  +	}};
   
       public void run() {
   	while (true)
  @@ -236,4 +255,5 @@
       }
   
       private Queue logQueue;
  +    private ServletContext servletContext;
   }