Author: fhanik
Date: Thu Sep 27 07:52:23 2007
New Revision: 580042
URL: http://svn.apache.org/viewvc?rev=580042&view=rev
Log:
forward port from 6.0
Modified:
tomcat/sandbox/gdev6x/java/org/apache/catalina/valves/AccessLogValve.java
tomcat/sandbox/gdev6x/java/org/apache/catalina/valves/JDBCAccessLogValve.java
Modified:
tomcat/sandbox/gdev6x/java/org/apache/catalina/valves/AccessLogValve.java
URL:
http://svn.apache.org/viewvc/tomcat/sandbox/gdev6x/java/org/apache/catalina/valves/AccessLogValve.java?rev=580042&r1=580041&r2=580042&view=diff
==============================================================================
--- tomcat/sandbox/gdev6x/java/org/apache/catalina/valves/AccessLogValve.java
(original)
+++ tomcat/sandbox/gdev6x/java/org/apache/catalina/valves/AccessLogValve.java
Thu Sep 27 07:52:23 2007
@@ -1096,7 +1096,7 @@
public void addElement(StringBuffer buf, Date date, Request request,
Response response, long time) {
- int length = response.getContentCount();
+ long length = response.getContentCountLong() ;
if (length <= 0 && conversion) {
buf.append('-');
} else {
Modified:
tomcat/sandbox/gdev6x/java/org/apache/catalina/valves/JDBCAccessLogValve.java
URL:
http://svn.apache.org/viewvc/tomcat/sandbox/gdev6x/java/org/apache/catalina/valves/JDBCAccessLogValve.java?rev=580042&r1=580041&r2=580042&view=diff
==============================================================================
---
tomcat/sandbox/gdev6x/java/org/apache/catalina/valves/JDBCAccessLogValve.java
(original)
+++
tomcat/sandbox/gdev6x/java/org/apache/catalina/valves/JDBCAccessLogValve.java
Thu Sep 27 07:52:23 2007
@@ -45,11 +45,11 @@
* To use, copy into the server/classes directory of the Tomcat installation
* and configure in server.xml as:
* <pre>
- * <Valve
className="org.apache.catalina.valves.JDBCAccessLogValve"
- * driverName="<i>your_jdbc_driver</i>"
- * connectionURL="<i>your_jdbc_url</i>"
- * pattern="combined" resolveHosts="false"
- * />
+ * <Valve className="org.apache.catalina.valves.JDBCAccessLogValve"
+ * driverName="<i>your_jdbc_driver</i>"
+ * connectionURL="<i>your_jdbc_url</i>"
+ * pattern="combined" resolveHosts="false"
+ * />
* </pre>
* </p>
* <p>
@@ -93,6 +93,11 @@
* INDEX (userAgent)
* );
* </pre>
+ * <p>Set JDBCAccessLogValve attribute useLongContentLength="true" as you have
more then 4GB outputs.
+ * Please, use long SQL datatype at access.bytes attribute.
+ * The datatype of bytes at oracle is <i>number</i> and other databases use
<i>bytes BIGINT NOT NULL</i>.
+ * </p>
+ *
* <p>
* If the table is created as above, its name and the field names don't need
* to be defined.
@@ -120,21 +125,21 @@
* Class constructor. Initializes the fields with the default values.
* The defaults are:
* <pre>
- * driverName = null;
- * connectionURL = null;
- * tableName = "access";
- * remoteHostField = "remoteHost";
- * userField = "userName";
- * timestampField = "timestamp";
- * virtualHostField = "virtualHost";
- * methodField = "method";
- * queryField = "query";
- * statusField = "status";
- * bytesField = "bytes";
- * refererField = "referer";
- * userAgentField = "userAgent";
- * pattern = "common";
- * resolveHosts = false;
+ * driverName = null;
+ * connectionURL = null;
+ * tableName = "access";
+ * remoteHostField = "remoteHost";
+ * userField = "userName";
+ * timestampField = "timestamp";
+ * virtualHostField = "virtualHost";
+ * methodField = "method";
+ * queryField = "query";
+ * statusField = "status";
+ * bytesField = "bytes";
+ * refererField = "referer";
+ * userAgentField = "userAgent";
+ * pattern = "common";
+ * resolveHosts = false;
* </pre>
*/
public JDBCAccessLogValve() {
@@ -162,7 +167,12 @@
// ----------------------------------------------------- Instance Variables
-
+ /**
+ * Use long contentLength as you have more 4 GB output.
+ * @since 6.0.15
+ */
+ protected boolean useLongContentLength = false ;
+
/**
* The connection username to use when trying to connect to the database.
*/
@@ -419,6 +429,19 @@
this.resolveHosts = new Boolean(resolveHosts).booleanValue();
}
+ /**
+ * get useLongContentLength
+ */
+ public boolean getUseLongContentLength() {
+ return this.useLongContentLength ;
+ }
+
+ /**
+ * @param useLongContentLength the useLongContentLength to set
+ */
+ public void setUseLongContentLength(boolean useLongContentLength) {
+ this.useLongContentLength = useLongContentLength;
+ }
// --------------------------------------------------------- Public Methods
@@ -449,7 +472,8 @@
String query="";
if(request != null)
query = request.getRequestURI();
- int bytes = response.getContentCount();
+
+ long bytes = response.getContentCountLong() ;
if(bytes < 0)
bytes = 0;
int status = response.getStatus();
@@ -478,7 +502,14 @@
ps.setTimestamp(3, new Timestamp(getCurrentTimeMillis()));
ps.setString(4, query);
ps.setInt(5, status);
- ps.setInt(6, bytes);
+
+ if(useLongContentLength) {
+ ps.setLong(6, bytes);
+ } else {
+ if (bytes > Integer.MAX_VALUE)
+ bytes = -1 ;
+ ps.setInt(6, (int) bytes);
+ }
if (pattern.equals("combined")) {
String virtualHost = "";
@@ -508,11 +539,11 @@
if (conn != null)
close();
}
- numberOfTries--;
+ numberOfTries--;
}
}
- }
+ }
/**
@@ -666,7 +697,7 @@
started = false;
close() ;
-
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]