[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[tor-commits] [exonerator/master] Streamline logging.



commit 7985986113f6422e7154e53ca0b4ebecca13b6c1
Author: iwakeh <iwakeh@xxxxxxxxxxxxxx>
Date:   Tue Sep 5 13:21:29 2017 +0000

    Streamline logging.
    
    slf4j and logback were already used in ExoneraTor.  This commit makes all
    classes use slf4j and replaced j.u.l and System.{err,out} logging.
---
 build.xml                                          |  1 +
 .../exonerator/ExoneraTorDatabaseImporter.java     | 48 ++++++++++++----------
 .../torproject/exonerator/ExoneraTorServlet.java   | 10 +++--
 .../org/torproject/exonerator/QueryResponse.java   | 27 ++++++------
 .../org/torproject/exonerator/QueryServlet.java    | 34 ++++++---------
 5 files changed, 60 insertions(+), 60 deletions(-)

diff --git a/build.xml b/build.xml
index 2dc70f0..68d5c98 100644
--- a/build.xml
+++ b/build.xml
@@ -158,6 +158,7 @@
         <include name="commons-lang-2.6.jar"/>
         <include name="gson-2.4.jar" />
         <include name="postgresql-9.4.1212.jar"/>
+        <include name="slf4j-api-1.7.22.jar"/>
       </lib>
       <classes dir="${classes}"/>
       <zipfileset dir="${resources}"
diff --git a/src/main/java/org/torproject/exonerator/ExoneraTorDatabaseImporter.java b/src/main/java/org/torproject/exonerator/ExoneraTorDatabaseImporter.java
index a36e242..155506c 100644
--- a/src/main/java/org/torproject/exonerator/ExoneraTorDatabaseImporter.java
+++ b/src/main/java/org/torproject/exonerator/ExoneraTorDatabaseImporter.java
@@ -14,6 +14,9 @@ import org.torproject.descriptor.RelayNetworkStatusConsensus;
 
 import org.apache.commons.codec.binary.Hex;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import java.io.BufferedReader;
 import java.io.BufferedWriter;
 import java.io.File;
@@ -39,6 +42,9 @@ import java.util.TreeMap;
 /* Import Tor descriptors into the ExoneraTor database. */
 public class ExoneraTorDatabaseImporter {
 
+  private static Logger logger
+      = LoggerFactory.getLogger(ExoneraTorDatabaseImporter.class);
+
   /** Main function controlling the parsing process. */
   public static void main(String[] args) {
     readConfiguration();
@@ -63,7 +69,7 @@ public class ExoneraTorDatabaseImporter {
   private static void readConfiguration() {
     File configFile = new File("config");
     if (!configFile.exists()) {
-      System.err.println("Could not find config file.  Exiting.");
+      logger.error("Could not find config file.  Exiting.");
       System.exit(1);
     }
     String line = null;
@@ -82,7 +88,7 @@ public class ExoneraTorDatabaseImporter {
       }
       br.close();
     } catch (IOException e) {
-      System.err.println("Could not parse config file.  Exiting.");
+      logger.error("Could not parse config file.  Exiting.", e);
       System.exit(1);
     }
   }
@@ -95,7 +101,7 @@ public class ExoneraTorDatabaseImporter {
     try {
       connection = DriverManager.getConnection(jdbcString);
     } catch (SQLException e) {
-      System.out.println("Could not connect to database.  Exiting.");
+      logger.error("Could not connect to database.  Exiting.", e);
       System.exit(1);
     }
   }
@@ -113,8 +119,8 @@ public class ExoneraTorDatabaseImporter {
       insertExitlistentryStatement = connection.prepareCall(
           "{call insert_exitlistentry(?, ?, ?, ?, ?)}");
     } catch (SQLException e) {
-      System.out.println("Could not prepare callable statements to "
-          + "import data into the database.  Exiting.");
+      logger.warn("Could not prepare callable statements to "
+                  + "import data into the database.  Exiting.", e);
       System.exit(1);
     }
   }
@@ -130,12 +136,12 @@ public class ExoneraTorDatabaseImporter {
         br.close();
         if (System.currentTimeMillis() - runStarted
             < 6L * 60L * 60L * 1000L) {
-          System.out.println("File 'exonerator-lock' is less than 6 "
+          logger.warn("File 'exonerator-lock' is less than 6 "
               + "hours old.  Exiting.");
           System.exit(1);
         } else {
-          System.out.println("File 'exonerator-lock' is at least 6 hours "
-              + "old.  Overwriting and executing anyway.");
+          logger.warn("File 'exonerator-lock' is at least 6 hours old."
+              + "  Overwriting and executing anyway.");
         }
       }
       BufferedWriter bw = new BufferedWriter(new FileWriter(
@@ -143,8 +149,7 @@ public class ExoneraTorDatabaseImporter {
       bw.append(String.valueOf(System.currentTimeMillis()) + "\n");
       bw.close();
     } catch (IOException e) {
-      System.out.println("Could not create 'exonerator-lock' file.  "
-          + "Exiting.");
+      logger.warn("Could not create 'exonerator-lock' file.  Exiting.");
       System.exit(1);
     }
   }
@@ -179,9 +184,9 @@ public class ExoneraTorDatabaseImporter {
           lineNumber++;
           String[] parts = line.split(",");
           if (parts.length != 2) {
-            System.out.println("File 'stats/exonerator-import-history' "
-                + "contains a corrupt entry in line " + lineNumber
-                + ".  Ignoring parse history file entirely.");
+            logger.warn("File 'stats/exonerator-import-history' "
+                + "contains a corrupt entry in line {}.  "
+                + "Ignoring parse history file entirely.", lineNumber);
             lastImportHistory.clear();
             br.close();
             return;
@@ -192,7 +197,7 @@ public class ExoneraTorDatabaseImporter {
         }
         br.close();
       } catch (IOException e) {
-        System.out.println("Could not read import history.  Ignoring.");
+        logger.warn("Could not read import history.  Ignoring.", e);
         lastImportHistory.clear();
       }
     }
@@ -306,8 +311,8 @@ public class ExoneraTorDatabaseImporter {
             insertStatusentryStatement.setString(6,
                 orAddress.replaceAll("[\\[\\]]", ""));
           } else {
-            System.err.println("Could not import status entry with IPv6 "
-                + "address '" + orAddress + "'.  Exiting.");
+            logger.error("Could not import status entry with IPv6 "
+                         + "address '{}'.  Exiting.", orAddress);
             System.exit(1);
           }
         }
@@ -315,7 +320,7 @@ public class ExoneraTorDatabaseImporter {
         insertStatusentryStatement.execute();
       }
     } catch (SQLException e) {
-      System.out.println("Could not import status entry.  Exiting.");
+      logger.error("Could not import status entry.  Exiting.", e);
       System.exit(1);
     }
   }
@@ -360,7 +365,7 @@ public class ExoneraTorDatabaseImporter {
       insertExitlistentryStatement.setBytes(5, rawExitlistentry);
       insertExitlistentryStatement.execute();
     } catch (SQLException e) {
-      System.out.println("Could not import exit list entry.  Exiting.");
+      logger.error("Could not import exit list entry.  Exiting.", e);
       System.exit(1);
     }
   }
@@ -379,8 +384,8 @@ public class ExoneraTorDatabaseImporter {
       }
       bw.close();
     } catch (IOException e) {
-      System.out.println("File 'stats/exonerator-import-history' could "
-          + "not be written.  Ignoring.");
+      logger.warn("File 'stats/exonerator-import-history' could "
+          + "not be written.  Ignoring.", e);
     }
   }
 
@@ -389,8 +394,7 @@ public class ExoneraTorDatabaseImporter {
     try {
       connection.close();
     } catch (SQLException e) {
-      System.out.println("Could not close database connection.  "
-          + "Ignoring.");
+      logger.warn("Could not close database connection. Ignoring.", e);
     }
   }
 
diff --git a/src/main/java/org/torproject/exonerator/ExoneraTorServlet.java b/src/main/java/org/torproject/exonerator/ExoneraTorServlet.java
index 8e88882..e5dac24 100644
--- a/src/main/java/org/torproject/exonerator/ExoneraTorServlet.java
+++ b/src/main/java/org/torproject/exonerator/ExoneraTorServlet.java
@@ -5,6 +5,9 @@ package org.torproject.exonerator;
 
 import org.apache.commons.lang.StringEscapeUtils;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
@@ -23,7 +26,6 @@ import java.util.ResourceBundle;
 import java.util.SortedMap;
 import java.util.TimeZone;
 import java.util.TreeMap;
-import java.util.logging.Logger;
 import java.util.regex.Pattern;
 
 import javax.servlet.ServletConfig;
@@ -48,7 +50,7 @@ public class ExoneraTorServlet extends HttpServlet {
   @Override
   public void init(ServletConfig config) throws ServletException {
     super.init(config);
-    this.logger = Logger.getLogger(ExoneraTorServlet.class.toString());
+    this.logger = LoggerFactory.getLogger(ExoneraTorServlet.class);
     this.availableLanguageNames = new TreeMap<>();
     for (String locale : this.availableLanguages) {
       ResourceBundle rb = ResourceBundle.getBundle("ExoneraTor",
@@ -307,7 +309,7 @@ public class ExoneraTorServlet extends HttpServlet {
     } catch (IOException e) {
       /* No result from backend, so that we don't have a query response to
        * process further. */
-      logger.severe("Backend query failed: " + e.getMessage());
+      logger.error("Backend query failed.", e);
     }
     return null;
   }
@@ -584,7 +586,7 @@ public class ExoneraTorServlet extends HttpServlet {
               content = rb.getString("technicaldetails.exit.no");
               break;
             default: // should never happen
-              logger.warning("Unknown content: " + content);
+              logger.warn("Unknown content: '{}'.", content);
           }
         }
         out.print("                <td" + attributes + ">" + content + "</td>");
diff --git a/src/main/java/org/torproject/exonerator/QueryResponse.java b/src/main/java/org/torproject/exonerator/QueryResponse.java
index 8053e94..b172b7d 100644
--- a/src/main/java/org/torproject/exonerator/QueryResponse.java
+++ b/src/main/java/org/torproject/exonerator/QueryResponse.java
@@ -7,28 +7,30 @@ import com.google.gson.Gson;
 import com.google.gson.annotations.Expose;
 import com.google.gson.annotations.SerializedName;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import java.io.IOException;
 import java.io.Reader;
 import java.util.Objects;
-import java.util.logging.Logger;
 
 /** Query response from the ExoneraTor database. */
 public class QueryResponse {
 
   @Expose(serialize = false, deserialize = false)
-  private static Logger logger = Logger.getLogger(QueryResponse.class.toString());
+  private static Logger logger = LoggerFactory.getLogger(QueryResponse.class);
 
-  /* Actual response format version implemented by this class. */
+  /* Actual version implemented by this class. */
   @Expose(serialize = false, deserialize = false)
   private static final String VERSION = "1.0";
 
   /* Don't accept query responses with versions lower than this. */
   @Expose(serialize = false, deserialize = false)
-  private static final String FIRST_RECOGNIZED_VERSION = "1.0";
+  private static final String FIRSTRECOGNIZEDVERSION = "1.0";
 
   /* Don't accept query responses with this version or higher. */
   @Expose(serialize = false, deserialize = false)
-  private static final String FIRST_UNRECOGNIZED_VERSION = "2.0";
+  private static final String FIRSTUNRECOGNIZEDVERSION = "2.0";
 
   /** Version of this response format. */
   @Expose
@@ -96,20 +98,19 @@ public class QueryResponse {
     try {
       QueryResponse response = gson.fromJson(reader, QueryResponse.class);
       if (null == response || null == response.version) {
-        logger.warning("Response is either empty or does not contain "
+        logger.warn("Response is either empty or does not contain "
             + "version information.");
         return null;
-      } else if (response.version.compareTo(FIRST_RECOGNIZED_VERSION) < 0
-          || response.version.compareTo(FIRST_UNRECOGNIZED_VERSION) >= 0) {
-        logger.warning("Response has either an older or a newer version ("
-            + response.version + ") than we can handle ("
-            + FIRST_RECOGNIZED_VERSION + " <= x < " + FIRST_UNRECOGNIZED_VERSION
-            + ").");
+      } else if (response.version.compareTo(FIRSTRECOGNIZEDVERSION) < 0
+          || response.version.compareTo(FIRSTUNRECOGNIZEDVERSION) >= 0) {
+        logger.error("Response has version {}, which is not in the range "
+            + "of versions we can handle: {} <= x < {}).", response.version,
+            FIRSTRECOGNIZEDVERSION, FIRSTUNRECOGNIZEDVERSION);
         return null;
       }
       return response;
     } catch (RuntimeException e) {
-      logger.severe("JSON decoding failed: " + e.getMessage());
+      logger.error("JSON decoding failed.", e);
     }
     return null;
   }
diff --git a/src/main/java/org/torproject/exonerator/QueryServlet.java b/src/main/java/org/torproject/exonerator/QueryServlet.java
index 74be053..893a7b9 100644
--- a/src/main/java/org/torproject/exonerator/QueryServlet.java
+++ b/src/main/java/org/torproject/exonerator/QueryServlet.java
@@ -3,9 +3,11 @@
 
 package org.torproject.exonerator;
 
-import com.google.gson.Gson;
 import org.apache.commons.codec.binary.Hex;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import java.io.IOException;
 import java.sql.CallableStatement;
 import java.sql.Connection;
@@ -19,8 +21,6 @@ import java.util.List;
 import java.util.SortedSet;
 import java.util.TimeZone;
 import java.util.TreeSet;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 import java.util.regex.Pattern;
 
 import javax.naming.Context;
@@ -44,9 +44,7 @@ public class QueryServlet extends HttpServlet {
 
   @Override
   public void init() {
-
-    /* Initialize logger. */
-    this.logger = Logger.getLogger(QueryServlet.class.toString());
+    this.logger = LoggerFactory.getLogger(QueryServlet.class);
 
     /* Look up data source. */
     try {
@@ -54,7 +52,7 @@ public class QueryServlet extends HttpServlet {
       this.ds = (DataSource) cxt.lookup("java:comp/env/jdbc/exonerator");
       this.logger.info("Successfully looked up data source.");
     } catch (NamingException e) {
-      this.logger.log(Level.WARNING, "Could not look up data source", e);
+      this.logger.warn("Could not look up data source", e);
     }
   }
 
@@ -96,17 +94,12 @@ public class QueryServlet extends HttpServlet {
     if (null == queryResponse) {
       response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
           "Database error.");
-      return;
+    } else {
+      /* Write the response. */
+      response.setContentType("application/json");
+      response.setCharacterEncoding("utf-8");
+      response.getWriter().write(QueryResponse.toJson(queryResponse));
     }
-
-    /* Format the query response. */
-    Gson gson = new Gson();
-    String formattedResponse = gson.toJson(queryResponse);
-
-    /* Write the response. */
-    response.setContentType("application/json");
-    response.setCharacterEncoding("utf-8");
-    response.getWriter().write(formattedResponse);
   }
 
   /* Helper methods for handling the request. */
@@ -314,12 +307,11 @@ public class QueryServlet extends HttpServlet {
       rs.close();
       cs.close();
       conn.close();
-      this.logger.info("Returned a database connection to the pool "
-          + "after " + (System.currentTimeMillis()
-          - requestedConnection) + " millis.");
+      this.logger.info("Returned a database connection to the pool after {}"
+          + " millis.", System.currentTimeMillis() - requestedConnection);
     } catch (SQLException e) {
       /* Nothing found. */
-      this.logger.log(Level.WARNING, "Database error: " + e.getMessage(), e);
+      this.logger.warn("Database error.  Returning 'null'.", e);
       return null;
     }
 



_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits