You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by ce...@apache.org on 2004/05/12 15:21:41 UTC
cvs commit: logging-log4j/src/java/org/apache/log4j/db/dialect postgresql.sql mysql.sql
ceki 2004/05/12 06:21:41
Modified: src/java/org/apache/log4j/db DBReceiver.java DBAppender.java
src/java/org/apache/log4j/db/dialect postgresql.sql
mysql.sql
Log:
renamed id as event_id
Revision Changes Path
1.2 +36 -8 logging-log4j/src/java/org/apache/log4j/db/DBReceiver.java
Index: DBReceiver.java
===================================================================
RCS file: /home/cvs/logging-log4j/src/java/org/apache/log4j/db/DBReceiver.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- DBReceiver.java 10 May 2004 19:38:58 -0000 1.1
+++ DBReceiver.java 12 May 2004 13:21:41 -0000 1.2
@@ -22,11 +22,13 @@
import java.sql.Statement;
import org.apache.log4j.Level;
+import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.apache.log4j.helpers.LogLog;
import org.apache.log4j.plugins.Pauseable;
import org.apache.log4j.plugins.Receiver;
import org.apache.log4j.scheduler.Job;
+import org.apache.log4j.scheduler.Scheduler;
import org.apache.log4j.spi.LoggerRepository;
import org.apache.log4j.spi.LoggingEvent;
import org.apache.log4j.spi.ThrowableInformation;
@@ -41,8 +43,15 @@
public class DBReceiver
extends Receiver
implements Pauseable {
+
+ /**
+ * By default we refresh data every 1000 milliseconds.
+ * @see #setRefreshMillis
+ */
+ static int DEFAULT_REFRESH_MILLIS = 1000;
+
ConnectionSource connectionSource;
- int refreshMillis;
+ int refreshMillis = DEFAULT_REFRESH_MILLIS;
DBReceiverJob receiverJob;
boolean paused = false;
@@ -51,6 +60,9 @@
LogLog.info("activating connectionSource");
connectionSource.activateOptions();
receiverJob = new DBReceiverJob();
+ Scheduler scheduler = LogManager.getSchedulerInstance();
+ scheduler.schedule(receiverJob, System.currentTimeMillis()+500, refreshMillis);
+
} else {
throw new IllegalStateException("DBAppender cannot function without a connection source");
}
@@ -87,7 +99,9 @@
* @see org.apache.log4j.plugins.Plugin#shutdown()
*/
public void shutdown() {
- // TODO Auto-generated method stub
+ LogLog.info("removing receiverJob from the Scheduler.");
+ Scheduler scheduler = LogManager.getSchedulerInstance();
+ scheduler.delete(receiverJob);
}
@@ -105,10 +119,19 @@
return paused;
}
- class DBReceiverJob
- implements Job {
+ /**
+ * Actual retrieval of data is made by the instance of DBReceiverJob associated
+ * with DBReceiver.
+ *
+ * @author Ceki Gülcü
+ */
+ class DBReceiverJob implements Job {
+
+ long lastId = 0;
+
+
public void execute() {
- LogLog.info("in DBReceiverJob.execute()");
+ LogLog.info("DBReceiverJob.execute() called");
try {
Logger logger;
LoggerRepository loggerRepository = getLoggerRepository();
@@ -116,8 +139,11 @@
StringBuffer sql = new StringBuffer();
sql.append("SELECT sequence_number, timestamp, rendered_message, ");
sql.append("logger_name, level_string, ndc, thread_name, ");
- sql.append("reference_flag, id from logging_event");
-
+ sql.append("reference_flag, event_id from logging_event ");
+ // have subsequent SELECTs start from we left off last time
+ sql.append(" WHERE event_id > "+lastId);
+ sql.append(" ORDER BY event_id ASC");
+
Statement statement = connection.createStatement();
ResultSet rs = statement.executeQuery(sql.toString());
rs.first();
@@ -141,7 +167,8 @@
short mask = rs.getShort(8);
id = rs.getLong(9);
-
+ lastId = id;
+
//event.setProperty("id", Long.toString(id));
if ((mask & DBHelper.PROPERTIES_EXIST) != 0) {
getProperties(connection, id, event);
@@ -154,6 +181,7 @@
if (! DBReceiver.this.isPaused()) {
DBReceiver.this.doPost(event);
}
+
}
} catch (SQLException sqle) {
LogLog.error("Problem receiving events", sqle);
1.6 +1 -1 logging-log4j/src/java/org/apache/log4j/db/DBAppender.java
Index: DBAppender.java
===================================================================
RCS file: /home/cvs/logging-log4j/src/java/org/apache/log4j/db/DBAppender.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- DBAppender.java 10 May 2004 17:26:58 -0000 1.5
+++ DBAppender.java 12 May 2004 13:21:41 -0000 1.6
@@ -122,7 +122,7 @@
rs.first();
int eventId = rs.getInt(1);
- LogLog.info("inserted id is " + eventId);
+// LogLog.info("inserted id is " + eventId);
// event_id INT NOT NULL,
// mapped_key VARCHAR(254) NOT NULL,
1.5 +1 -1 logging-log4j/src/java/org/apache/log4j/db/dialect/postgresql.sql
Index: postgresql.sql
===================================================================
RCS file: /home/cvs/logging-log4j/src/java/org/apache/log4j/db/dialect/postgresql.sql,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- postgresql.sql 10 May 2004 17:26:58 -0000 1.4
+++ postgresql.sql 12 May 2004 13:21:41 -0000 1.5
@@ -20,7 +20,7 @@
ndc TEXT,
thread_name VARCHAR(254),
reference_flag SMALLINT,
- id INT DEFAULT nextval('logging_event_id_seq') PRIMARY KEY
+ event_id INT DEFAULT nextval('logging_event_id_seq') PRIMARY KEY
);
CREATE TABLE logging_event_property
1.5 +1 -1 logging-log4j/src/java/org/apache/log4j/db/dialect/mysql.sql
Index: mysql.sql
===================================================================
RCS file: /home/cvs/logging-log4j/src/java/org/apache/log4j/db/dialect/mysql.sql,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- mysql.sql 10 May 2004 17:26:58 -0000 1.4
+++ mysql.sql 12 May 2004 13:21:41 -0000 1.5
@@ -23,7 +23,7 @@
ndc TEXT,
thread_name VARCHAR(254),
reference_flag SMALLINT,
- id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
+ event_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
);
COMMIT;
---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org