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;
}