[tor-commits] [metrics-web/master] Simplify logging configuration.
karsten at torproject.org
karsten at torproject.org
Tue Mar 31 08:34:34 UTC 2020
commit 334550d6d5c50e064c49f6ee713cff561e137fc6
Author: Karsten Loesing <karsten.loesing at gmx.net>
Date: Tue Mar 31 10:30:46 2020 +0200
Simplify logging configuration.
Implements #33549.
---
CHANGELOG.md | 1 +
src/build | 2 +-
.../torproject/metrics/stats/bridgedb/Main.java | 16 +++---
.../org/torproject/metrics/stats/bwhist/Main.java | 14 +++---
.../bwhist/RelayDescriptorDatabaseImporter.java | 43 ++++++++--------
.../org/torproject/metrics/stats/clients/Main.java | 24 ++++-----
.../metrics/stats/connbidirect/Main.java | 44 ++++++++--------
.../metrics/stats/hidserv/Aggregator.java | 7 +--
.../stats/hidserv/ComputedNetworkFractions.java | 12 ++---
.../metrics/stats/hidserv/DocumentStore.java | 17 ++++---
.../stats/hidserv/ExtrapolatedHidServStats.java | 6 +--
.../metrics/stats/hidserv/Extrapolator.java | 5 +-
.../org/torproject/metrics/stats/hidserv/Main.java | 16 +++---
.../torproject/metrics/stats/hidserv/Parser.java | 19 +++----
.../stats/hidserv/ReportedHidServStats.java | 4 +-
.../torproject/metrics/stats/hidserv/Simulate.java | 12 ++---
.../org/torproject/metrics/stats/main/Main.java | 30 +++++------
.../torproject/metrics/stats/onionperf/Main.java | 22 ++++----
.../org/torproject/metrics/stats/servers/Main.java | 24 ++++-----
.../org/torproject/metrics/stats/totalcw/Main.java | 24 ++++-----
.../torproject/metrics/stats/webstats/Main.java | 32 ++++++------
.../org/torproject/metrics/web/ServerMain.java | 7 +--
.../org/torproject/metrics/web/UpdateNews.java | 8 +--
src/main/resources/logback.xml | 58 ----------------------
src/submods/metrics-lib | 2 +-
25 files changed, 201 insertions(+), 248 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b1571c6..323d0e7 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -14,6 +14,7 @@
links into https:// links.
- Set default locale `US` at the beginning of the execution.
- Set default time zone `UTC` at the beginning of the execution.
+ - Simplify logging configuration.
# Changes in version 1.3.0 - 2019-11-09
diff --git a/src/build b/src/build
index 264e498..fd85646 160000
--- a/src/build
+++ b/src/build
@@ -1 +1 @@
-Subproject commit 264e498f54a20f7d299daaf2533d043f880e6a8b
+Subproject commit fd856466bcb260f53ef69a24c102d0e49d171cc3
diff --git a/src/main/java/org/torproject/metrics/stats/bridgedb/Main.java b/src/main/java/org/torproject/metrics/stats/bridgedb/Main.java
index 989c695..f7e9fb4 100644
--- a/src/main/java/org/torproject/metrics/stats/bridgedb/Main.java
+++ b/src/main/java/org/torproject/metrics/stats/bridgedb/Main.java
@@ -24,7 +24,7 @@ import java.util.TreeMap;
public class Main {
- private static Logger log = LoggerFactory.getLogger(Main.class);
+ private static final Logger logger = LoggerFactory.getLogger(Main.class);
private static final Path bridgedbStatsCsvFile
= org.torproject.metrics.stats.main.Main.modulesDir.toPath()
@@ -55,7 +55,7 @@ public class Main {
}
String[] lineParts = line.split(",");
if (lineParts.length != 4) {
- log.warn("Skipping unrecognized line '{}' in {}.", line,
+ logger.warn("Skipping unrecognized line '{}' in {}.", line,
bridgedbStatsCsvFile.toAbsolutePath());
continue;
}
@@ -64,8 +64,8 @@ public class Main {
long value = Long.parseLong(lineParts[3]);
readStatistics.put(key, value);
}
- log.debug("Read {} containing {} non-header lines.", bridgedbStatsCsvFile,
- readStatistics.size());
+ logger.debug("Read {} containing {} non-header lines.",
+ bridgedbStatsCsvFile, readStatistics.size());
}
return readStatistics;
}
@@ -82,7 +82,7 @@ public class Main {
}
BridgedbMetrics bridgedbMetrics = (BridgedbMetrics) descriptor;
if (!"1".equals(bridgedbMetrics.bridgedbMetricsVersion())) {
- log.warn("Unable to process BridgeDB metrics version {} != 1.",
+ logger.warn("Unable to process BridgeDB metrics version {} != 1.",
bridgedbMetrics.bridgedbMetricsVersion());
continue;
}
@@ -100,7 +100,7 @@ public class Main {
continue;
}
if (bridgedbMetricCount.getValue() < 10) {
- log.warn("Skipping too small BridgeDB metric count {} < 10 in {}.",
+ logger.warn("Skipping too small BridgeDB metric count {} < 10 in {}.",
bridgedbMetricCount.getValue(),
descriptor.getDescriptorFile().getAbsolutePath());
continue;
@@ -141,8 +141,8 @@ public class Main {
statistic.getValue()));
}
Files.write(bridgedbStatsCsvFile, lines, StandardOpenOption.CREATE);
- log.debug("Wrote {} containing {} non-header lines.", bridgedbStatsCsvFile,
- lines.size() - 1);
+ logger.debug("Wrote {} containing {} non-header lines.",
+ bridgedbStatsCsvFile, lines.size() - 1);
}
}
diff --git a/src/main/java/org/torproject/metrics/stats/bwhist/Main.java b/src/main/java/org/torproject/metrics/stats/bwhist/Main.java
index 4e92f1c..e3befc0 100644
--- a/src/main/java/org/torproject/metrics/stats/bwhist/Main.java
+++ b/src/main/java/org/torproject/metrics/stats/bwhist/Main.java
@@ -15,7 +15,7 @@ import java.util.Arrays;
*/
public class Main {
- private static Logger log = LoggerFactory.getLogger(Main.class);
+ private static final Logger logger = LoggerFactory.getLogger(Main.class);
private static String[] paths = {
"recent/relay-descriptors/consensuses",
@@ -34,9 +34,9 @@ public class Main {
/** Executes this data-processing module. */
public static void main(String[] args) throws Exception {
- log.info("Starting bwhist module.");
+ logger.info("Starting bwhist module.");
- log.info("Reading descriptors and inserting relevant parts into the "
+ logger.info("Reading descriptors and inserting relevant parts into the "
+ "database.");
File[] descriptorDirectories = Arrays.stream(paths).map((String path)
-> new File(org.torproject.metrics.stats.main.Main.descriptorsDir,
@@ -47,17 +47,17 @@ public class Main {
historyFile, jdbcString);
database.importRelayDescriptors();
- log.info("Aggregating database entries.");
+ logger.info("Aggregating database entries.");
database.aggregate();
- log.info("Querying aggregated statistics from the database.");
+ logger.info("Querying aggregated statistics from the database.");
new Writer().write(new File(baseDir, "stats/bandwidth.csv").toPath(),
database.queryBandwidth());
- log.info("Closing database connection.");
+ logger.info("Closing database connection.");
database.closeConnection();
- log.info("Terminating bwhist module.");
+ logger.info("Terminating bwhist module.");
}
}
diff --git a/src/main/java/org/torproject/metrics/stats/bwhist/RelayDescriptorDatabaseImporter.java b/src/main/java/org/torproject/metrics/stats/bwhist/RelayDescriptorDatabaseImporter.java
index 7b08f77..2afbecf 100644
--- a/src/main/java/org/torproject/metrics/stats/bwhist/RelayDescriptorDatabaseImporter.java
+++ b/src/main/java/org/torproject/metrics/stats/bwhist/RelayDescriptorDatabaseImporter.java
@@ -85,7 +85,7 @@ public final class RelayDescriptorDatabaseImporter {
*/
private CallableStatement csH;
- private static Logger log
+ private static final Logger logger
= LoggerFactory.getLogger(RelayDescriptorDatabaseImporter.class);
/**
@@ -141,7 +141,7 @@ public final class RelayDescriptorDatabaseImporter {
+ "(date) VALUES (?)");
this.scheduledUpdates = new HashSet<>();
} catch (SQLException e) {
- log.warn("Could not connect to database or prepare statements.", e);
+ logger.warn("Could not connect to database or prepare statements.", e);
}
}
@@ -160,7 +160,7 @@ public final class RelayDescriptorDatabaseImporter {
this.dateTimeFormat.format(timestamp).substring(0, 10)
+ " 00:00:00").getTime();
} catch (ParseException e) {
- log.warn("Internal parsing error.", e);
+ logger.warn("Internal parsing error.", e);
return;
}
if (!this.scheduledUpdates.contains(dateMillis)) {
@@ -206,8 +206,8 @@ public final class RelayDescriptorDatabaseImporter {
insertedStatusEntries.add(fingerprint);
}
} catch (SQLException e) {
- log.warn("Could not add network status consensus entry. We won't make "
- + "any further SQL requests in this execution.", e);
+ logger.warn("Could not add network status consensus entry. We won't "
+ + "make any further SQL requests in this execution.", e);
this.importIntoDatabase = false;
}
}
@@ -304,7 +304,7 @@ public final class RelayDescriptorDatabaseImporter {
for (String bandwidthHistoryString : bandwidthHistoryStrings) {
String[] parts = bandwidthHistoryString.split(" ");
if (parts.length != 6) {
- log.debug("Bandwidth history line does not have expected "
+ logger.debug("Bandwidth history line does not have expected "
+ "number of elements. Ignoring this line.");
continue;
}
@@ -312,13 +312,13 @@ public final class RelayDescriptorDatabaseImporter {
try {
intervalLength = Long.parseLong(parts[3].substring(1));
} catch (NumberFormatException e) {
- log.debug("Bandwidth history line does not have valid interval length "
- + "'{} {}'. Ignoring this line.", parts[3], parts[4]);
+ logger.debug("Bandwidth history line does not have valid interval "
+ + "length '{} {}'. Ignoring this line.", parts[3], parts[4]);
continue;
}
String[] values = parts[5].split(",");
if (intervalLength % 900L != 0L) {
- log.debug("Bandwidth history line does not contain "
+ logger.debug("Bandwidth history line does not contain "
+ "multiples of 15-minute intervals. Ignoring this line.");
continue;
} else if (intervalLength != 900L) {
@@ -336,7 +336,7 @@ public final class RelayDescriptorDatabaseImporter {
values = newValues;
intervalLength = 900L;
} catch (NumberFormatException e) {
- log.debug("Number format exception while parsing "
+ logger.debug("Number format exception while parsing "
+ "bandwidth history line. Ignoring this line.");
continue;
}
@@ -350,15 +350,16 @@ public final class RelayDescriptorDatabaseImporter {
dateStart = dateTimeFormat.parse(parts[1] + " 00:00:00")
.getTime();
} catch (ParseException e) {
- log.debug("Parse exception while parsing timestamp in "
+ logger.debug("Parse exception while parsing timestamp in "
+ "bandwidth history line. Ignoring this line.");
continue;
}
if (Math.abs(published - intervalEnd)
> 7L * 24L * 60L * 60L * 1000L) {
- log.debug("Extra-info descriptor publication time {} and last interval "
- + "time {} in {} line differ by more than 7 days! Not adding this "
- + "line!", dateTimeFormat.format(published), intervalEndTime, type);
+ logger.debug("Extra-info descriptor publication time {} and last "
+ + "interval time {} in {} line differ by more than 7 days! Not "
+ + "adding this line!", dateTimeFormat.format(published),
+ intervalEndTime, type);
continue;
}
long currentIntervalEnd = intervalEnd;
@@ -384,7 +385,7 @@ public final class RelayDescriptorDatabaseImporter {
currentIntervalEnd -= intervalLength * 1000L;
}
} catch (NumberFormatException e) {
- log.debug("Number format exception while parsing "
+ logger.debug("Number format exception while parsing "
+ "bandwidth history line. Ignoring this line.");
continue;
}
@@ -432,7 +433,7 @@ public final class RelayDescriptorDatabaseImporter {
this.csH.executeBatch();
}
} catch (SQLException | ParseException e) {
- log.warn("Could not insert bandwidth "
+ logger.warn("Could not insert bandwidth "
+ "history line into database. We won't make any "
+ "further SQL requests in this execution.", e);
this.importIntoDatabase = false;
@@ -539,8 +540,8 @@ public final class RelayDescriptorDatabaseImporter {
public void commit() {
/* Log stats about imported descriptors. */
- log.info("Finished importing relay descriptors: {} network status entries "
- + "and {} bandwidth history elements", rrsCount, rhsCount);
+ logger.info("Finished importing relay descriptors: {} network status "
+ + "entries and {} bandwidth history elements", rrsCount, rhsCount);
/* Insert scheduled updates a second time, just in case the refresh
* run has started since inserting them the first time in which case
@@ -555,7 +556,7 @@ public final class RelayDescriptorDatabaseImporter {
this.psU.execute();
}
} catch (SQLException e) {
- log.warn("Could not add scheduled dates "
+ logger.warn("Could not add scheduled dates "
+ "for the next refresh run.", e);
}
}
@@ -567,7 +568,7 @@ public final class RelayDescriptorDatabaseImporter {
this.conn.commit();
} catch (SQLException e) {
- log.warn("Could not commit final records to database", e);
+ logger.warn("Could not commit final records to database", e);
}
}
}
@@ -637,7 +638,7 @@ public final class RelayDescriptorDatabaseImporter {
try {
this.conn.close();
} catch (SQLException e) {
- log.warn("Could not close database connection.", e);
+ logger.warn("Could not close database connection.", e);
}
}
}
diff --git a/src/main/java/org/torproject/metrics/stats/clients/Main.java b/src/main/java/org/torproject/metrics/stats/clients/Main.java
index d89a82a..bfa9214 100644
--- a/src/main/java/org/torproject/metrics/stats/clients/Main.java
+++ b/src/main/java/org/torproject/metrics/stats/clients/Main.java
@@ -23,7 +23,7 @@ import java.util.TreeMap;
public class Main {
- private static Logger log = LoggerFactory.getLogger(Main.class);
+ private static final Logger logger = LoggerFactory.getLogger(Main.class);
private static Database database;
@@ -33,36 +33,36 @@ public class Main {
/** Executes this data-processing module. */
public static void main(String[] args) throws Exception {
- log.info("Starting clients module.");
+ logger.info("Starting clients module.");
- log.info("Connecting to database.");
+ logger.info("Connecting to database.");
database = new Database();
- log.info("Reading relay descriptors and importing relevant parts into the "
- + "database.");
+ logger.info("Reading relay descriptors and importing relevant parts into "
+ + "the database.");
parseRelayDescriptors();
- log.info("Reading bridge descriptors and importing relevant parts into the "
- + "database.");
+ logger.info("Reading bridge descriptors and importing relevant parts into "
+ + "the database.");
parseBridgeDescriptors();
- log.info("Processing newly imported data.");
+ logger.info("Processing newly imported data.");
database.processImported();
database.commit();
- log.info("Querying aggregated statistics from the database.");
+ logger.info("Querying aggregated statistics from the database.");
new Writer().write(new File(baseDir, "stats/userstats.csv").toPath(),
database.queryEstimated());
new Writer().write(new File(baseDir, "stats/userstats-combined.csv")
.toPath(), database.queryCombined());
- log.info("Disconnecting from database.");
+ logger.info("Disconnecting from database.");
database.close();
- log.info("Running detector.");
+ logger.info("Running detector.");
new Detector().detect();
- log.info("Terminating clients module.");
+ logger.info("Terminating clients module.");
}
private static final long ONE_HOUR_MILLIS = 60L * 60L * 1000L;
diff --git a/src/main/java/org/torproject/metrics/stats/connbidirect/Main.java b/src/main/java/org/torproject/metrics/stats/connbidirect/Main.java
index 5e71534..2abf202 100644
--- a/src/main/java/org/torproject/metrics/stats/connbidirect/Main.java
+++ b/src/main/java/org/torproject/metrics/stats/connbidirect/Main.java
@@ -34,7 +34,7 @@ import java.util.TreeSet;
public class Main {
- private static Logger log = LoggerFactory.getLogger(Main.class);
+ private static final Logger logger = LoggerFactory.getLogger(Main.class);
static class RawStat implements Comparable<RawStat> {
@@ -79,12 +79,12 @@ public class Main {
return new RawStat(dateDays, fingerprint, fractionRead,
fractionWrite, fractionBoth);
} else {
- log.warn("Could not deserialize raw statistic from string '{}'.",
+ logger.warn("Could not deserialize raw statistic from string '{}'.",
string);
return null;
}
} catch (NumberFormatException e) {
- log.warn("Could not deserialize raw statistic from string '{}'.",
+ logger.warn("Could not deserialize raw statistic from string '{}'.",
string, e);
return null;
}
@@ -144,13 +144,13 @@ public class Main {
SortedMap<String, Long> parseHistory = parseParseHistory(
readStringFromFile(parseHistoryFile));
if (parseHistory == null) {
- log.warn("Could not parse {}. Proceeding without parse history.",
+ logger.warn("Could not parse {}. Proceeding without parse history.",
parseHistoryFile.getAbsolutePath());
}
SortedMap<String, Short> aggregateStats = parseAggregateStats(
readStringFromFile(aggregateStatsFile));
if (aggregateStats == null) {
- log.warn("Could not parse previously aggregated "
+ logger.warn("Could not parse previously aggregated "
+ "statistics. Not proceeding, because we would otherwise "
+ "lose previously aggregated values for which we don't have "
+ "raw statistics anymore.");
@@ -160,7 +160,7 @@ public class Main {
parseHistory = addRawStatsFromDescriptors(newRawStats,
descriptorsDirectories, parseHistory);
if (parseHistory == null) {
- log.warn("Could not parse raw statistics from "
+ logger.warn("Could not parse raw statistics from "
+ "descriptors. Not proceeding, because we would otherwise "
+ "leave out those descriptors in future runs.");
return;
@@ -169,7 +169,7 @@ public class Main {
SortedSet<RawStat> rawStats = parseRawStats(
readStringFromFile(rawStatsFile));
if (rawStats == null) {
- log.warn("Could not parse previously parsed raw "
+ logger.warn("Could not parse previously parsed raw "
+ "statistics. Not proceeding, because we might otherwise "
+ "leave out previously parsed statistics in the aggregates.");
return;
@@ -189,7 +189,7 @@ public class Main {
sb.append("\n ")
.append(dateFormat.format(conflictingDate * ONE_DAY_IN_MILLIS));
}
- log.warn(sb.toString());
+ logger.warn(sb.toString());
return;
}
updateAggregateStats(aggregateStats, rawStats);
@@ -248,19 +248,19 @@ public class Main {
while ((line = lnr.readLine()) != null) {
String[] parts = line.split(",");
if (parts.length < 2) {
- log.warn("Invalid line {} in parse history: '{}'.",
+ logger.warn("Invalid line {} in parse history: '{}'.",
lnr.getLineNumber(), line);
return null;
}
parsedParseHistory.put(parts[0], Long.parseLong(parts[1]));
}
} catch (IOException e) {
- log.warn("Unexpected I/O exception while reading line {} from parse "
+ logger.warn("Unexpected I/O exception while reading line {} from parse "
+ "history.", lnr.getLineNumber(), e);
return null;
} catch (NumberFormatException e) {
- log.warn("Invalid line {} in parse history: '{}'.", lnr.getLineNumber(),
- line, e);
+ logger.warn("Invalid line {} in parse history: '{}'.",
+ lnr.getLineNumber(), line, e);
return null;
}
return parsedParseHistory;
@@ -295,14 +295,14 @@ public class Main {
String line = "";
try {
if (!AGGREGATE_STATS_HEADER.equals(lnr.readLine())) {
- log.warn("First line of aggregate statistics does not "
+ logger.warn("First line of aggregate statistics does not "
+ "contain the header line. Is this the correct file?");
return null;
}
while ((line = lnr.readLine()) != null) {
String[] parts = line.split(",");
if (parts.length != 4) {
- log.warn("Invalid line {} in aggregate statistics: '{}'.",
+ logger.warn("Invalid line {} in aggregate statistics: '{}'.",
lnr.getLineNumber(), line);
return null;
}
@@ -310,11 +310,11 @@ public class Main {
+ parts[2], Short.parseShort(parts[3]));
}
} catch (IOException e) {
- log.warn("Unexpected I/O exception while reading line {} from aggregate "
- + "statistics.", lnr.getLineNumber(), e);
+ logger.warn("Unexpected I/O exception while reading line {} from "
+ + "aggregate statistics.", lnr.getLineNumber(), e);
return null;
} catch (NumberFormatException e) {
- log.warn("Invalid line {} in aggregate statistics: '{}'.",
+ logger.warn("Invalid line {} in aggregate statistics: '{}'.",
lnr.getLineNumber(), line, e);
return null;
}
@@ -341,19 +341,19 @@ public class Main {
while ((line = lnr.readLine()) != null) {
RawStat rawStat = RawStat.fromString(line);
if (rawStat == null) {
- log.warn("Invalid line {} in raw statistics: '{}'.",
+ logger.warn("Invalid line {} in raw statistics: '{}'.",
lnr.getLineNumber(), line);
return null;
}
parsedRawStats.add(rawStat);
}
} catch (IOException e) {
- log.warn("Unexpected I/O exception while reading line {} from raw "
+ logger.warn("Unexpected I/O exception while reading line {} from raw "
+ "statistics.", lnr.getLineNumber(), e);
return null;
} catch (NumberFormatException e) {
- log.warn("Invalid line {} in raw statistics: '{}'.", lnr.getLineNumber(),
- line, e);
+ logger.warn("Invalid line {} in raw statistics: '{}'.",
+ lnr.getLineNumber(), line, e);
return null;
}
return parsedRawStats;
@@ -392,7 +392,7 @@ public class Main {
int write = extraInfo.getConnBiDirectWrite();
int both = extraInfo.getConnBiDirectBoth();
if (below < 0 || read < 0 || write < 0 || both < 0) {
- log.debug("Could not parse incomplete conn-bi-direct statistics. "
+ logger.debug("Could not parse incomplete conn-bi-direct statistics. "
+ "Skipping descriptor.");
return null;
}
diff --git a/src/main/java/org/torproject/metrics/stats/hidserv/Aggregator.java b/src/main/java/org/torproject/metrics/stats/hidserv/Aggregator.java
index cb52598..8ca00a0 100644
--- a/src/main/java/org/torproject/metrics/stats/hidserv/Aggregator.java
+++ b/src/main/java/org/torproject/metrics/stats/hidserv/Aggregator.java
@@ -24,7 +24,8 @@ import java.util.TreeMap;
* statistics and the total network fraction of reporting relays. */
public class Aggregator {
- private static Logger log = LoggerFactory.getLogger(Aggregator.class);
+ private static final Logger logger
+ = LoggerFactory.getLogger(Aggregator.class);
/** Document file containing extrapolated hidden-service statistics. */
private File extrapolatedHidServStatsFile;
@@ -62,7 +63,7 @@ public class Aggregator {
this.extrapolatedHidServStatsStore.retrieve(
this.extrapolatedHidServStatsFile);
if (extrapolatedStats == null) {
- log.warn("Unable to retrieve extrapolated hidden-service "
+ logger.warn("Unable to retrieve extrapolated hidden-service "
+ "statistics from file {}. Skipping aggregation step.",
this.extrapolatedHidServStatsFile.getAbsolutePath());
return;
@@ -188,7 +189,7 @@ public class Aggregator {
this.hidservStatsCsvFile))) {
bw.write(sb.toString());
} catch (IOException e) {
- log.warn("Unable to write results to {}. Ignoring.",
+ logger.warn("Unable to write results to {}. Ignoring.",
this.extrapolatedHidServStatsFile.getAbsolutePath());
}
}
diff --git a/src/main/java/org/torproject/metrics/stats/hidserv/ComputedNetworkFractions.java b/src/main/java/org/torproject/metrics/stats/hidserv/ComputedNetworkFractions.java
index 3f3f12d..d110cbd 100644
--- a/src/main/java/org/torproject/metrics/stats/hidserv/ComputedNetworkFractions.java
+++ b/src/main/java/org/torproject/metrics/stats/hidserv/ComputedNetworkFractions.java
@@ -15,7 +15,7 @@ import java.util.Map;
* status entries and bandwidth weights in a network status consensus. */
public class ComputedNetworkFractions implements Document {
- private static Logger log
+ private static final Logger logger
= LoggerFactory.getLogger(ComputedNetworkFractions.class);
/** Relay fingerprint consisting of 40 upper-case hex characters. */
@@ -137,18 +137,18 @@ public class ComputedNetworkFractions implements Document {
@Override
public boolean parse(String[] formattedStrings) {
if (formattedStrings.length != 2) {
- log.warn("Invalid number of formatted strings. Skipping.");
+ logger.warn("Invalid number of formatted strings. Skipping.");
return false;
}
String[] firstParts = formattedStrings[0].split(",", 2);
if (firstParts.length != 2) {
- log.warn("Invalid number of comma-separated values. Skipping.");
+ logger.warn("Invalid number of comma-separated values. Skipping.");
return false;
}
String fingerprint = firstParts[0];
String[] secondParts = formattedStrings[1].split(",", 3);
if (secondParts.length != 3) {
- log.warn("Invalid number of comma-separated values. Skipping.");
+ logger.warn("Invalid number of comma-separated values. Skipping.");
return false;
}
String validAfterDate = firstParts[1];
@@ -166,7 +166,7 @@ public class ComputedNetworkFractions implements Document {
if (validAfterDateMillis == DateTimeHelper.NO_TIME_AVAILABLE
|| validAfterTimeMillis < 0L
|| validAfterTimeMillis >= DateTimeHelper.ONE_DAY) {
- log.warn("Invalid date/hour format. Skipping.");
+ logger.warn("Invalid date/hour format. Skipping.");
return false;
}
long validAfterMillis = validAfterDateMillis + validAfterTimeMillis;
@@ -179,7 +179,7 @@ public class ComputedNetworkFractions implements Document {
? 0.0 : Double.parseDouble(secondParts[2]);
return true;
} catch (NumberFormatException e) {
- log.warn("Invalid number format. Skipping.");
+ logger.warn("Invalid number format. Skipping.");
return false;
}
}
diff --git a/src/main/java/org/torproject/metrics/stats/hidserv/DocumentStore.java b/src/main/java/org/torproject/metrics/stats/hidserv/DocumentStore.java
index 1cfcf08..fe223c7 100644
--- a/src/main/java/org/torproject/metrics/stats/hidserv/DocumentStore.java
+++ b/src/main/java/org/torproject/metrics/stats/hidserv/DocumentStore.java
@@ -26,7 +26,8 @@ import java.util.TreeSet;
* interface to a file and later to retrieve them. */
public class DocumentStore<T extends Document> {
- private static Logger log = LoggerFactory.getLogger(DocumentStore.class);
+ private static final Logger logger
+ = LoggerFactory.getLogger(DocumentStore.class);
/** Document class, needed to create new instances when retrieving
* documents. */
@@ -47,7 +48,7 @@ public class DocumentStore<T extends Document> {
/* Retrieve existing documents. */
Set<T> retrievedDocuments = this.retrieve(documentFile);
if (retrievedDocuments == null) {
- log.warn("Unable to read and update {}. Not storing documents.",
+ logger.warn("Unable to read and update {}. Not storing documents.",
documentFile.getAbsoluteFile());
return false;
}
@@ -68,7 +69,7 @@ public class DocumentStore<T extends Document> {
File documentTempFile = new File(documentFile.getAbsoluteFile()
+ ".tmp");
if (documentTempFile.exists()) {
- log.warn("Temporary document file {} still exists, "
+ logger.warn("Temporary document file {} still exists, "
+ "indicating that a previous execution did not terminate "
+ "cleanly. Not storing documents.",
documentTempFile.getAbsoluteFile());
@@ -90,7 +91,7 @@ public class DocumentStore<T extends Document> {
documentFile.delete();
documentTempFile.renameTo(documentFile);
} catch (IOException e) {
- log.warn("Unable to write {}. Not storing documents.",
+ logger.warn("Unable to write {}. Not storing documents.",
documentFile.getAbsolutePath(), e);
return false;
}
@@ -125,7 +126,7 @@ public class DocumentStore<T extends Document> {
if (!line.startsWith(" ")) {
formattedString0 = line;
} else if (formattedString0 == null) {
- log.warn("First line in {} must not start with a space. Not "
+ logger.warn("First line in {} must not start with a space. Not "
+ "retrieving any previously stored documents.",
documentFile.getAbsolutePath());
return null;
@@ -140,7 +141,7 @@ public class DocumentStore<T extends Document> {
T document = this.clazz.getDeclaredConstructor().newInstance();
if (!document.parse(new String[] { formattedString0,
line.substring(1) })) {
- log.warn("Unable to read line {} from {}. Not retrieving any "
+ logger.warn("Unable to read line {} from {}. Not retrieving any "
+ "previously stored documents.", lnr.getLineNumber(),
documentFile.getAbsolutePath());
return null;
@@ -149,12 +150,12 @@ public class DocumentStore<T extends Document> {
}
}
} catch (IOException e) {
- log.warn("Unable to read {}. Not retrieving any previously stored "
+ logger.warn("Unable to read {}. Not retrieving any previously stored "
+ "documents.", documentFile.getAbsolutePath(), e);
return null;
} catch (InstantiationException | IllegalAccessException
| NoSuchMethodException | InvocationTargetException e) {
- log.warn("Unable to read {}. Cannot instantiate document object.",
+ logger.warn("Unable to read {}. Cannot instantiate document object.",
documentFile.getAbsolutePath(), e);
return null;
}
diff --git a/src/main/java/org/torproject/metrics/stats/hidserv/ExtrapolatedHidServStats.java b/src/main/java/org/torproject/metrics/stats/hidserv/ExtrapolatedHidServStats.java
index 71048f3..c46ee2f 100644
--- a/src/main/java/org/torproject/metrics/stats/hidserv/ExtrapolatedHidServStats.java
+++ b/src/main/java/org/torproject/metrics/stats/hidserv/ExtrapolatedHidServStats.java
@@ -11,7 +11,7 @@ import org.slf4j.LoggerFactory;
* computed network fractions in the statistics interval. */
public class ExtrapolatedHidServStats implements Document {
- private static Logger log
+ private static final Logger logger
= LoggerFactory.getLogger(ExtrapolatedHidServStats.class);
/** Date of statistics interval end in milliseconds. */
@@ -136,7 +136,7 @@ public class ExtrapolatedHidServStats implements Document {
@Override
public boolean parse(String[] formattedStrings) {
if (formattedStrings.length != 2) {
- log.warn("Invalid number of formatted strings: {}. Skipping.",
+ logger.warn("Invalid number of formatted strings: {}. Skipping.",
formattedStrings.length);
return false;
}
@@ -144,7 +144,7 @@ public class ExtrapolatedHidServStats implements Document {
DateTimeHelper.ISO_DATE_FORMAT);
String[] secondParts = formattedStrings[1].split(",", 5);
if (secondParts.length != 5) {
- log.warn("Invalid number of comma-separated values: {}. Skipping.",
+ logger.warn("Invalid number of comma-separated values: {}. Skipping.",
secondParts.length);
return false;
}
diff --git a/src/main/java/org/torproject/metrics/stats/hidserv/Extrapolator.java b/src/main/java/org/torproject/metrics/stats/hidserv/Extrapolator.java
index 6bb47b8..a1f5028 100644
--- a/src/main/java/org/torproject/metrics/stats/hidserv/Extrapolator.java
+++ b/src/main/java/org/torproject/metrics/stats/hidserv/Extrapolator.java
@@ -20,7 +20,8 @@ import java.util.TreeSet;
* observed by the relay. */
public class Extrapolator {
- private static Logger log = LoggerFactory.getLogger(Extrapolator.class);
+ private static final Logger logger
+ = LoggerFactory.getLogger(Extrapolator.class);
/** Document file containing previously parsed reported hidden-service
* statistics. */
@@ -89,7 +90,7 @@ public class Extrapolator {
/* Make sure that all documents could be retrieved correctly. */
if (extrapolatedStats == null || reportedStats == null) {
- log.warn("Could not read previously parsed or extrapolated "
+ logger.warn("Could not read previously parsed or extrapolated "
+ "hidserv-stats. Skipping.");
return false;
}
diff --git a/src/main/java/org/torproject/metrics/stats/hidserv/Main.java b/src/main/java/org/torproject/metrics/stats/hidserv/Main.java
index 1711dbb..ba65f8e 100644
--- a/src/main/java/org/torproject/metrics/stats/hidserv/Main.java
+++ b/src/main/java/org/torproject/metrics/stats/hidserv/Main.java
@@ -14,7 +14,7 @@ import java.io.File;
* do not overlap. */
public class Main {
- private static Logger log = LoggerFactory.getLogger(Main.class);
+ private static final Logger logger = LoggerFactory.getLogger(Main.class);
private static final File baseDir = new File(
org.torproject.metrics.stats.main.Main.modulesDir, "hidserv");
@@ -34,7 +34,7 @@ public class Main {
/* Initialize parser and read parse history to avoid parsing
* descriptor files that haven't changed since the last execution. */
- log.info("Initializing parser and reading parse history...");
+ logger.info("Initializing parser and reading parse history...");
DocumentStore<ReportedHidServStats> reportedHidServStatsStore =
new DocumentStore<>(ReportedHidServStats.class);
DocumentStore<ComputedNetworkFractions>
@@ -46,28 +46,28 @@ public class Main {
/* Parse new descriptors and store their contents using the document
* stores. */
- log.info("Parsing descriptors...");
+ logger.info("Parsing descriptors...");
parser.parseDescriptors();
/* Write the parse history to avoid parsing descriptor files again
* next time. It's okay to do this now and not at the end of the
* execution, because even if something breaks apart below, it's safe
* not to parse descriptor files again. */
- log.info("Writing parse history...");
+ logger.info("Writing parse history...");
parser.writeParseHistory();
/* Extrapolate reported statistics using computed network fractions
* and write the result to disk using a document store. The result is
* a single file with extrapolated network totals based on reports by
* single relays. */
- log.info("Extrapolating statistics...");
+ logger.info("Extrapolating statistics...");
DocumentStore<ExtrapolatedHidServStats> extrapolatedHidServStatsStore
= new DocumentStore<>(ExtrapolatedHidServStats.class);
Extrapolator extrapolator = new Extrapolator(statusDirectory,
reportedHidServStatsStore, computedNetworkFractionsStore,
extrapolatedHidServStatsStore);
if (!extrapolator.extrapolateHidServStats()) {
- log.warn("Could not extrapolate statistics. Terminating.");
+ logger.warn("Could not extrapolate statistics. Terminating.");
return;
}
@@ -75,7 +75,7 @@ public class Main {
* This includes calculating daily weighted interquartile means, among
* other statistics. Write the result to a .csv file that can be
* processed by other tools. */
- log.info("Aggregating statistics...");
+ logger.info("Aggregating statistics...");
File hidservStatsExtrapolatedCsvFile = new File(baseDir,
"stats/hidserv.csv");
Aggregator aggregator = new Aggregator(statusDirectory,
@@ -83,7 +83,7 @@ public class Main {
aggregator.aggregateHidServStats();
/* End this execution. */
- log.info("Terminating.");
+ logger.info("Terminating.");
}
}
diff --git a/src/main/java/org/torproject/metrics/stats/hidserv/Parser.java b/src/main/java/org/torproject/metrics/stats/hidserv/Parser.java
index 46a6607..d1d2328 100644
--- a/src/main/java/org/torproject/metrics/stats/hidserv/Parser.java
+++ b/src/main/java/org/torproject/metrics/stats/hidserv/Parser.java
@@ -35,7 +35,7 @@ import java.util.TreeSet;
* document files for later use. */
public class Parser {
- private static Logger log = LoggerFactory.getLogger(Parser.class);
+ private static final Logger logger = LoggerFactory.getLogger(Parser.class);
/** File containing tuples of last-modified times and file names of
* descriptor files parsed in the previous execution. */
@@ -111,12 +111,12 @@ public class Parser {
String[] parts = line.split(" ", 2);
excludedFiles.put(parts[1], Long.parseLong(parts[0]));
} catch (NumberFormatException e) {
- log.warn("Illegal line '{}' in parse history. Skipping line.", line,
- e);
+ logger.warn("Illegal line '{}' in parse history. Skipping line.",
+ line, e);
}
}
} catch (IOException e) {
- log.warn("Could not read history file '{}'. Not "
+ logger.warn("Could not read history file '{}'. Not "
+ "excluding descriptors in this execution.",
this.parseHistoryFile.getAbsolutePath(), e);
}
@@ -151,8 +151,9 @@ public class Parser {
+ "\n");
}
} catch (IOException e) {
- log.warn("Could not write history file '{}'. Not excluding descriptors "
- + "in next execution.", this.parseHistoryFile.getAbsolutePath(), e);
+ logger.warn("Could not write history file '{}'. Not excluding "
+ + "descriptors in next execution.",
+ this.parseHistoryFile.getAbsolutePath(), e);
}
}
@@ -231,7 +232,7 @@ public class Parser {
} else if (extraInfoDescriptor.getHidservStatsEndMillis() >= 0L
|| extraInfoDescriptor.getHidservRendRelayedCells() != null
|| extraInfoDescriptor.getHidservDirOnionsSeen() != null) {
- log.warn("Relay {} published incomplete hidserv-stats. Ignoring.",
+ logger.warn("Relay {} published incomplete hidserv-stats. Ignoring.",
fingerprint);
}
}
@@ -252,7 +253,7 @@ public class Parser {
SortedMap<String, Integer> bandwidthWeights =
consensus.getBandwidthWeights();
if (bandwidthWeights == null) {
- log.warn("Consensus with valid-after time {} doesn't contain any Wxx "
+ logger.warn("Consensus with valid-after time {} doesn't contain any Wxx "
+ "weights. Skipping.",
DateTimeHelper.format(consensus.getValidAfterMillis()));
return;
@@ -264,7 +265,7 @@ public class Parser {
new TreeSet<>(Arrays.asList("Wmg,Wmm,Wme,Wmd".split(",")));
expectedWeightKeys.removeAll(bandwidthWeights.keySet());
if (!expectedWeightKeys.isEmpty()) {
- log.warn("Consensus with valid-after time {} doesn't contain expected "
+ logger.warn("Consensus with valid-after time {} doesn't contain expected "
+ "Wmx weights. Skipping.",
DateTimeHelper.format(consensus.getValidAfterMillis()));
return;
diff --git a/src/main/java/org/torproject/metrics/stats/hidserv/ReportedHidServStats.java b/src/main/java/org/torproject/metrics/stats/hidserv/ReportedHidServStats.java
index 5b79a65..95942af 100644
--- a/src/main/java/org/torproject/metrics/stats/hidserv/ReportedHidServStats.java
+++ b/src/main/java/org/torproject/metrics/stats/hidserv/ReportedHidServStats.java
@@ -11,7 +11,7 @@ import org.slf4j.LoggerFactory;
* by the relay in the "hidserv-" lines of its extra-info descriptor. */
public class ReportedHidServStats implements Document {
- private static Logger log
+ private static final Logger logger
= LoggerFactory.getLogger(ReportedHidServStats.class);
/* Relay fingerprint consisting of 40 upper-case hex characters. */
@@ -115,7 +115,7 @@ public class ReportedHidServStats implements Document {
@Override
public boolean parse(String[] formattedStrings) {
if (formattedStrings.length != 2) {
- log.warn("Invalid number of formatted strings: {} Skipping.",
+ logger.warn("Invalid number of formatted strings: {} Skipping.",
formattedStrings.length);
return false;
}
diff --git a/src/main/java/org/torproject/metrics/stats/hidserv/Simulate.java b/src/main/java/org/torproject/metrics/stats/hidserv/Simulate.java
index 696fc1d..21f20a9 100644
--- a/src/main/java/org/torproject/metrics/stats/hidserv/Simulate.java
+++ b/src/main/java/org/torproject/metrics/stats/hidserv/Simulate.java
@@ -24,7 +24,7 @@ import java.util.TreeSet;
* contains its own main method.) */
public class Simulate {
- private static Logger log = LoggerFactory.getLogger(Simulate.class);
+ private static final Logger logger = LoggerFactory.getLogger(Simulate.class);
private static File simCellsCsvFile =
new File("out/csv/sim-cells.csv");
@@ -34,11 +34,11 @@ public class Simulate {
/** Runs two simulations to evaluate this data-processing module. */
public static void main(String[] args) throws Exception {
- log.info("Simulating extrapolation of rendezvous cells");
+ logger.info("Simulating extrapolation of rendezvous cells");
simulateManyCells();
- log.info("Simulating extrapolation of .onions");
+ logger.info("Simulating extrapolation of .onions");
simulateManyOnions();
- log.info("Terminating.");
+ logger.info("Terminating.");
}
private static Random rnd = new Random();
@@ -51,7 +51,7 @@ public class Simulate {
final int numberOfExtrapolations = 1000;
for (int i = 0; i < numberOfExtrapolations; i++) {
bw.write(simulateCells(i));
- log.info(".");
+ logger.info(".");
}
bw.close();
}
@@ -64,7 +64,7 @@ public class Simulate {
final int numberOfExtrapolations = 1000;
for (int i = 0; i < numberOfExtrapolations; i++) {
bw.write(simulateOnions(i));
- log.info(".");
+ logger.info(".");
}
bw.close();
}
diff --git a/src/main/java/org/torproject/metrics/stats/main/Main.java b/src/main/java/org/torproject/metrics/stats/main/Main.java
index 6badd96..41cba3a 100644
--- a/src/main/java/org/torproject/metrics/stats/main/Main.java
+++ b/src/main/java/org/torproject/metrics/stats/main/Main.java
@@ -15,7 +15,7 @@ import java.util.TimeZone;
public class Main {
- private static final Logger log = LoggerFactory.getLogger(Main.class);
+ private static final Logger logger = LoggerFactory.getLogger(Main.class);
private static final String baseDir = System.getProperty("metrics.basedir",
"/srv/metrics.torproject.org/metrics");
@@ -29,7 +29,7 @@ public class Main {
/** Start the metrics update run. */
public static void main(String[] args) {
- log.info("Starting metrics update run.");
+ logger.info("Starting metrics update run.");
Locale.setDefault(Locale.US);
TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
@@ -40,11 +40,11 @@ public class Main {
continue;
}
if (outputDir.mkdirs()) {
- log.info("Successfully created module base directory {} and any "
+ logger.info("Successfully created module base directory {} and any "
+ "nonexistent parent directories.",
outputDir.getAbsolutePath());
} else {
- log.error("Unable to create module base directory {} and any "
+ logger.error("Unable to create module base directory {} and any "
+ "nonexistent parent directories. Exiting.",
outputDir.getAbsolutePath());
return;
@@ -67,19 +67,19 @@ public class Main {
for (Class<?> module : modules) {
try {
- log.info("Starting {} module.", module.getName());
+ logger.info("Starting {} module.", module.getName());
module.getDeclaredMethod("main", String[].class)
.invoke(null, (Object) args);
- log.info("Completed {} module.", module.getName());
+ logger.info("Completed {} module.", module.getName());
} catch (NoSuchMethodException | IllegalAccessException
| InvocationTargetException e) {
- log.warn("Caught an exception when invoking the main method of the {} "
- + "module. Moving on to the next module, if available.",
+ logger.warn("Caught an exception when invoking the main method of the "
+ + "{} module. Moving on to the next module, if available.",
module.getName(), e);
}
}
- log.info("Making module data available.");
+ logger.info("Making module data available.");
File[] moduleStatsDirs = new File[] {
new File(modulesDir, "connbidirect/stats"),
new File(modulesDir, "onionperf/stats"),
@@ -96,13 +96,15 @@ public class Main {
List<String> copiedFiles = new ArrayList<>();
for (File moduleStatsDir : moduleStatsDirs) {
if (!moduleStatsDir.exists()) {
- log.warn("Skipping nonexistent module stats dir {}.", moduleStatsDir);
+ logger.warn("Skipping nonexistent module stats dir {}.",
+ moduleStatsDir);
continue;
}
File[] moduleStatsFiles = moduleStatsDir.isDirectory()
? moduleStatsDir.listFiles() : new File[] { moduleStatsDir };
if (null == moduleStatsFiles) {
- log.warn("Skipping nonexistent module stats dir {}.", moduleStatsDir);
+ logger.warn("Skipping nonexistent module stats dir {}.",
+ moduleStatsDir);
continue;
}
for (File statsFile : moduleStatsFiles) {
@@ -115,16 +117,16 @@ public class Main {
StandardCopyOption.REPLACE_EXISTING);
copiedFiles.add(statsFile.getName());
} catch (IOException e) {
- log.warn("Unable to copy module stats file {} to stats output "
+ logger.warn("Unable to copy module stats file {} to stats output "
+ "directory {}. Skipping.", statsFile, statsDir, e);
}
}
}
if (!copiedFiles.isEmpty()) {
- log.info("Successfully copied {} files to stats output directory: {}",
+ logger.info("Successfully copied {} files to stats output directory: {}",
copiedFiles.size(), copiedFiles);
}
- log.info("Completed metrics update run.");
+ logger.info("Completed metrics update run.");
}
}
diff --git a/src/main/java/org/torproject/metrics/stats/onionperf/Main.java b/src/main/java/org/torproject/metrics/stats/onionperf/Main.java
index 4325c01..e1b063c 100644
--- a/src/main/java/org/torproject/metrics/stats/onionperf/Main.java
+++ b/src/main/java/org/torproject/metrics/stats/onionperf/Main.java
@@ -31,7 +31,7 @@ import java.util.Set;
public class Main {
/** Logger for this class. */
- private static Logger log = LoggerFactory.getLogger(Main.class);
+ private static final Logger logger = LoggerFactory.getLogger(Main.class);
private static final String jdbcString = String.format(
"jdbc:postgresql://localhost/onionperf?user=%s&password=%s",
@@ -43,7 +43,7 @@ public class Main {
/** Executes this data-processing module. */
public static void main(String[] args) throws Exception {
- log.info("Starting onionperf module.");
+ logger.info("Starting onionperf module.");
Connection connection = connectToDatabase();
importOnionPerfFiles(connection);
writeStatistics(new File(baseDir, "stats/torperf-1.1.csv").toPath(),
@@ -56,15 +56,15 @@ public class Main {
new File(baseDir, "stats/onionperf-throughput.csv").toPath(),
queryThroughput(connection));
disconnectFromDatabase(connection);
- log.info("Terminated onionperf module.");
+ logger.info("Terminated onionperf module.");
}
private static Connection connectToDatabase()
throws SQLException {
- log.info("Connecting to database.");
+ logger.info("Connecting to database.");
Connection connection = DriverManager.getConnection(jdbcString);
connection.setAutoCommit(false);
- log.info("Successfully connected to database.");
+ logger.info("Successfully connected to database.");
return connection;
}
@@ -240,7 +240,7 @@ public class Main {
static List<String> queryOnionPerf(Connection connection)
throws SQLException {
- log.info("Querying statistics from database.");
+ logger.info("Querying statistics from database.");
List<String> statistics = new ArrayList<>();
statistics
.add("date,filesize,source,server,q1,md,q3,timeouts,failures,requests");
@@ -268,7 +268,7 @@ public class Main {
static List<String> queryBuildTimes(Connection connection)
throws SQLException {
- log.info("Querying buildtime statistics from database.");
+ logger.info("Querying buildtime statistics from database.");
List<String> statistics = new ArrayList<>();
statistics.add("date,source,position,q1,md,q3");
Statement st = connection.createStatement();
@@ -291,7 +291,7 @@ public class Main {
static List<String> queryLatencies(Connection connection)
throws SQLException {
- log.info("Querying latency statistics from database.");
+ logger.info("Querying latency statistics from database.");
List<String> statistics = new ArrayList<>();
statistics.add("date,source,server,low,q1,md,q3,high");
Statement st = connection.createStatement();
@@ -316,7 +316,7 @@ public class Main {
static List<String> queryThroughput(Connection connection)
throws SQLException {
- log.info("Querying throughput statistics from database.");
+ logger.info("Querying throughput statistics from database.");
List<String> statistics = new ArrayList<>();
statistics.add("date,source,server,low,q1,md,q3,high");
Statement st = connection.createStatement();
@@ -361,14 +361,14 @@ public class Main {
static void writeStatistics(Path webstatsPath, List<String> statistics)
throws IOException {
webstatsPath.toFile().getParentFile().mkdirs();
- log.info("Writing {} lines to {}.", statistics.size(),
+ logger.info("Writing {} lines to {}.", statistics.size(),
webstatsPath.toFile().getAbsolutePath());
Files.write(webstatsPath, statistics, StandardCharsets.UTF_8);
}
private static void disconnectFromDatabase(Connection connection)
throws SQLException {
- log.info("Disconnecting from database.");
+ logger.info("Disconnecting from database.");
connection.close();
}
}
diff --git a/src/main/java/org/torproject/metrics/stats/servers/Main.java b/src/main/java/org/torproject/metrics/stats/servers/Main.java
index 1fc853f..3258189 100644
--- a/src/main/java/org/torproject/metrics/stats/servers/Main.java
+++ b/src/main/java/org/torproject/metrics/stats/servers/Main.java
@@ -22,7 +22,7 @@ import java.util.Arrays;
* statistics to CSV files. */
public class Main {
- private static Logger log = LoggerFactory.getLogger(Main.class);
+ private static final Logger logger = LoggerFactory.getLogger(Main.class);
private static final File baseDir = new File(
org.torproject.metrics.stats.main.Main.modulesDir, "servers");
@@ -40,9 +40,9 @@ public class Main {
/** Run the module. */
public static void main(String[] args) throws Exception {
- log.info("Starting servers module.");
+ logger.info("Starting servers module.");
- log.info("Reading descriptors and inserting relevant parts into the "
+ logger.info("Reading descriptors and inserting relevant parts into the "
+ "database.");
DescriptorReader reader = DescriptorSourceFactory.createDescriptorReader();
File historyFile = new File(baseDir, "status/read-descriptors");
@@ -64,30 +64,30 @@ public class Main {
database.insertStatus(parser.parseBridgeNetworkStatus(
(BridgeNetworkStatus) descriptor));
} else if (null != descriptor.getRawDescriptorBytes()) {
- log.debug("Skipping unknown descriptor of type {} starting with "
+ logger.debug("Skipping unknown descriptor of type {} starting with "
+ "'{}'.", descriptor.getClass(),
new String(descriptor.getRawDescriptorBytes(), 0,
Math.min(descriptor.getRawDescriptorLength(), 100)));
} else {
- log.debug("Skipping unknown, empty descriptor of type {}.",
+ logger.debug("Skipping unknown, empty descriptor of type {}.",
descriptor.getClass());
}
}
- log.info("Aggregating database entries.");
+ logger.info("Aggregating database entries.");
database.aggregate();
- log.info("Committing all updated parts in the database.");
+ logger.info("Committing all updated parts in the database.");
database.commit();
} catch (SQLException sqle) {
- log.error("Cannot recover from SQL exception while inserting or "
+ logger.error("Cannot recover from SQL exception while inserting or "
+ "aggregating data. Rolling back and exiting.", sqle);
database.rollback();
return;
}
reader.saveHistoryFile(historyFile);
- log.info("Querying aggregated statistics from the database.");
+ logger.info("Querying aggregated statistics from the database.");
File outputDir = new File(baseDir, "stats");
new Writer().write(new File(outputDir, "ipv6servers.csv").toPath(),
database.queryServersIpv6());
@@ -102,10 +102,10 @@ public class Main {
new Writer().write(new File(outputDir, "platforms.csv").toPath(),
database.queryPlatforms());
- log.info("Terminating servers module.");
+ logger.info("Terminating servers module.");
} catch (SQLException sqle) {
- log.error("Cannot recover from SQL exception while querying. Not writing "
- + "output file.", sqle);
+ logger.error("Cannot recover from SQL exception while querying. Not "
+ + "writing output file.", sqle);
}
}
}
diff --git a/src/main/java/org/torproject/metrics/stats/totalcw/Main.java b/src/main/java/org/torproject/metrics/stats/totalcw/Main.java
index 3be41f9..c19defd 100644
--- a/src/main/java/org/torproject/metrics/stats/totalcw/Main.java
+++ b/src/main/java/org/torproject/metrics/stats/totalcw/Main.java
@@ -21,7 +21,7 @@ import java.util.Arrays;
* CSV file. */
public class Main {
- private static Logger log = LoggerFactory.getLogger(Main.class);
+ private static final Logger logger = LoggerFactory.getLogger(Main.class);
private static final File baseDir = new File(
org.torproject.metrics.stats.main.Main.modulesDir, "totalcw");
@@ -35,10 +35,10 @@ public class Main {
/** Run the module. */
public static void main(String[] args) throws Exception {
- log.info("Starting totalcw module.");
+ logger.info("Starting totalcw module.");
- log.info("Reading consensuses and votes and inserting relevant parts into "
- + "the database.");
+ logger.info("Reading consensuses and votes and inserting relevant parts "
+ + "into the database.");
DescriptorReader reader = DescriptorSourceFactory.createDescriptorReader();
File historyFile = new File(baseDir, "status/read-descriptors");
reader.setHistoryFile(historyFile);
@@ -56,33 +56,33 @@ public class Main {
database.insertVote(parser.parseRelayNetworkStatusVote(
(RelayNetworkStatusVote) descriptor));
} else {
- log.debug("Skipping unknown descriptor of type {}.",
+ logger.debug("Skipping unknown descriptor of type {}.",
descriptor.getClass());
}
}
- log.info("Committing all updated parts in the database.");
+ logger.info("Committing all updated parts in the database.");
database.commit();
} catch (SQLException sqle) {
- log.error("Cannot recover from SQL exception while inserting data. "
+ logger.error("Cannot recover from SQL exception while inserting data. "
+ "Rolling back and exiting.", sqle);
database.rollback();
return;
}
reader.saveHistoryFile(historyFile);
- log.info("Querying aggregated statistics from the database.");
+ logger.info("Querying aggregated statistics from the database.");
Iterable<OutputLine> output = database.queryTotalcw();
File outputFile = new File(baseDir, "stats/totalcw.csv");
- log.info("Writing aggregated statistics to {}.", outputFile);
+ logger.info("Writing aggregated statistics to {}.", outputFile);
if (null != output) {
new Writer().write(outputFile.toPath(), output);
}
- log.info("Terminating totalcw module.");
+ logger.info("Terminating totalcw module.");
} catch (SQLException sqle) {
- log.error("Cannot recover from SQL exception while querying. Not writing "
- + "output file.", sqle);
+ logger.error("Cannot recover from SQL exception while querying. Not "
+ + "writing output file.", sqle);
}
}
}
diff --git a/src/main/java/org/torproject/metrics/stats/webstats/Main.java b/src/main/java/org/torproject/metrics/stats/webstats/Main.java
index bca86c5..7ce099e 100644
--- a/src/main/java/org/torproject/metrics/stats/webstats/Main.java
+++ b/src/main/java/org/torproject/metrics/stats/webstats/Main.java
@@ -42,7 +42,7 @@ import java.util.TreeSet;
public class Main {
/** Logger for this class. */
- private static Logger log = LoggerFactory.getLogger(Main.class);
+ private static final Logger logger = LoggerFactory.getLogger(Main.class);
private static final String jdbcString = String.format(
"jdbc:postgresql://localhost/webstats?user=%s&password=%s",
@@ -72,7 +72,7 @@ public class Main {
/** Executes this data-processing module. */
public static void main(String[] args) throws Exception {
- log.info("Starting webstats module.");
+ logger.info("Starting webstats module.");
Connection connection = connectToDatabase();
SortedSet<String> skipFiles = queryImportedFileNames(connection);
importLogFiles(connection, skipFiles,
@@ -84,21 +84,21 @@ public class Main {
writeStatistics(new File(baseDir, "stats/webstats.csv").toPath(),
statistics);
disconnectFromDatabase(connection);
- log.info("Terminated webstats module.");
+ logger.info("Terminated webstats module.");
}
private static Connection connectToDatabase()
throws SQLException {
- log.info("Connecting to database.");
+ logger.info("Connecting to database.");
Connection connection = DriverManager.getConnection(jdbcString);
connection.setAutoCommit(false);
- log.info("Successfully connected to database.");
+ logger.info("Successfully connected to database.");
return connection;
}
static SortedSet<String> queryImportedFileNames(Connection connection)
throws SQLException {
- log.info("Querying previously imported log files.");
+ logger.info("Querying previously imported log files.");
SortedSet<String> importedLogFileUrls = new TreeSet<>();
Statement st = connection.createStatement();
String queryString = "SELECT server, site, log_date FROM files";
@@ -110,7 +110,7 @@ public class Main {
rs.getDate(3).toLocalDate().format(dateFormat)));
}
}
- log.info("Found {} previously imported log files.",
+ logger.info("Found {} previously imported log files.",
importedLogFileUrls.size());
return importedLogFileUrls;
}
@@ -142,11 +142,11 @@ public class Main {
logFile.getPhysicalHost(), logFile.getVirtualHost(),
logFile.getLogDate(), parsedLogLines);
} catch (DescriptorParseException exc) {
- log.warn("Cannot parse log file with file name {}. Retrying in the "
+ logger.warn("Cannot parse log file with file name {}. Retrying in the "
+ "next run.", logFile.getDescriptorFile().getName(), exc);
} catch (SQLException exc) {
- log.warn("Cannot import log file with file name {} into the database. "
- + "Rolling back and retrying in the next run.",
+ logger.warn("Cannot import log file with file name {} into the "
+ + "database. Rolling back and retrying in the next run.",
logFile.getDescriptorFile().getName(), exc);
try {
connection.rollback();
@@ -173,7 +173,7 @@ public class Main {
+ COUNT + ") VALUES (?, CAST(? AS method), ?, ?, ?)");
int fileId = insertFile(psFiles, urlString, server, site, logDate);
if (fileId < 0) {
- log.debug("Skipping previously imported log file {}.", urlString);
+ logger.debug("Skipping previously imported log file {}.", urlString);
return;
}
for (Map.Entry<String, Long> requests : parsedLogLines.entrySet()) {
@@ -185,7 +185,7 @@ public class Main {
int resourceId = insertResource(psResourcesSelect, psResourcesInsert,
resource);
if (resourceId < 0) {
- log.error("Could not retrieve auto-generated key for new resources "
+ logger.error("Could not retrieve auto-generated key for new resources "
+ "entry.");
connection.rollback();
return;
@@ -194,7 +194,7 @@ public class Main {
count);
}
connection.commit();
- log.debug("Finished importing log file with file name {} into database.",
+ logger.debug("Finished importing log file with file name {} into database.",
urlString);
}
@@ -265,7 +265,7 @@ public class Main {
static SortedSet<String> queryWebstats(Connection connection)
throws SQLException {
- log.info("Querying statistics from database.");
+ logger.info("Querying statistics from database.");
SortedSet<String> statistics = new TreeSet<>();
Statement st = connection.createStatement();
String queryString = "SELECT " + ALL_COLUMNS + " FROM webstats";
@@ -295,14 +295,14 @@ public class Main {
List<String> lines = new ArrayList<>();
lines.add(ALL_COLUMNS);
lines.addAll(statistics);
- log.info("Writing {} lines to {}.", lines.size(),
+ logger.info("Writing {} lines to {}.", lines.size(),
webstatsPath.toFile().getAbsolutePath());
Files.write(webstatsPath, lines, StandardCharsets.UTF_8);
}
private static void disconnectFromDatabase(Connection connection)
throws SQLException {
- log.info("Disconnecting from database.");
+ logger.info("Disconnecting from database.");
connection.close();
}
}
diff --git a/src/main/java/org/torproject/metrics/web/ServerMain.java b/src/main/java/org/torproject/metrics/web/ServerMain.java
index bb03086..21f8529 100644
--- a/src/main/java/org/torproject/metrics/web/ServerMain.java
+++ b/src/main/java/org/torproject/metrics/web/ServerMain.java
@@ -13,21 +13,22 @@ import java.util.Locale;
public class ServerMain {
- private static final Logger log = LoggerFactory.getLogger(ServerMain.class);
+ private static final Logger logger
+ = LoggerFactory.getLogger(ServerMain.class);
/** Starts the web server listening for incoming client connections. */
public static void main(String[] args) {
Locale.setDefault(Locale.US);
try {
Resource jettyXml = Resource.newSystemResource("jetty.xml");
- log.info("Reading configuration from '{}'.", jettyXml);
+ logger.info("Reading configuration from '{}'.", jettyXml);
XmlConfiguration configuration
= new XmlConfiguration(jettyXml.getInputStream());
Server server = (Server) configuration.configure();
server.start();
server.join();
} catch (Exception ex) {
- log.error("Exiting, because of: {}.", ex.getMessage(), ex);
+ logger.error("Exiting, because of: {}.", ex.getMessage(), ex);
System.exit(1);
}
}
diff --git a/src/main/java/org/torproject/metrics/web/UpdateNews.java b/src/main/java/org/torproject/metrics/web/UpdateNews.java
index 8f4440e..07b1d75 100644
--- a/src/main/java/org/torproject/metrics/web/UpdateNews.java
+++ b/src/main/java/org/torproject/metrics/web/UpdateNews.java
@@ -18,7 +18,8 @@ import java.util.Locale;
public class UpdateNews {
- private static Logger log = LoggerFactory.getLogger(UpdateNews.class);
+ private static final Logger logger
+ = LoggerFactory.getLogger(UpdateNews.class);
/** Update news. */
public static void main(String[] args) throws Exception {
@@ -79,7 +80,7 @@ public class UpdateNews {
int space = desc.indexOf(" ", open);
int close = desc.indexOf("]", open);
if (open < 0 || space < 0 || close < 0) {
- log.warn("Cannot convert link in line {}. Exiting.", line);
+ logger.warn("Cannot convert link in line {}. Exiting.", line);
System.exit(1);
}
desc = desc.substring(0, open) + "<a href=\""
@@ -91,7 +92,8 @@ public class UpdateNews {
int open = desc.indexOf("`");
int close = desc.indexOf("`", open + 1);
if (open < 0 || close < 0) {
- log.warn("Cannot convert code fragment in line {}. Exiting.", line);
+ logger.warn("Cannot convert code fragment in line {}. Exiting.",
+ line);
System.exit(1);
}
desc = desc.substring(0, open) + "<code>"
diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml
deleted file mode 100644
index 7789feb..0000000
--- a/src/main/resources/logback.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-<configuration debug="false">
- <statusListener class="ch.qos.logback.core.status.NopStatusListener" />
-
- <!-- a path and a prefix -->
- <property name="logfile-base" value="${LOGBASE}/metrics-web-" />
-
- <!-- log file names -->
- <property name="fileall-logname" value="${logfile-base}all" />
- <property name="fileerr-logname" value="${logfile-base}err" />
- <property name="filestatistics-logname" value="${logfile-base}statistics" />
-
- <!-- date pattern -->
- <property name="utc-date-pattern" value="%date{ISO8601, UTC}" />
-
- <!-- appender section -->
- <appender name="FILEALL" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <file>${fileall-logname}.log</file>
- <encoder>
- <pattern>${utc-date-pattern} %level %logger{20}:%line %msg%n</pattern>
- </encoder>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <!-- rollover daily -->
- <FileNamePattern>${fileall-logname}.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
- <maxHistory>10</maxHistory>
- <timeBasedFileNamingAndTriggeringPolicy
- class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <!-- or whenever the file size reaches 1MB -->
- <maxFileSize>1MB</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- </rollingPolicy>
- </appender>
-
- <appender name="FILEERR" class="ch.qos.logback.core.FileAppender">
- <file>${fileerr-logname}.log</file>
- <encoder>
- <pattern>${utc-date-pattern} %level %logger{20}:%line %msg%n</pattern>
- </encoder>
-
- <!-- ERROR or worse -->
- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
- <level>ERROR</level>
- </filter>
- </appender>
-
- <!-- logger section -->
- <logger name="org.torproject" >
- <appender-ref ref="FILEERR" />
- </logger>
-
- <logger name="org.eclipse" level="INFO" />
- <logger name="org.apache" level="INFO" />
-
- <root level="ALL">
- <appender-ref ref="FILEALL" />
- </root>
-
-</configuration>
-
diff --git a/src/submods/metrics-lib b/src/submods/metrics-lib
index 81570c4..d7d5303 160000
--- a/src/submods/metrics-lib
+++ b/src/submods/metrics-lib
@@ -1 +1 @@
-Subproject commit 81570c4dbc097089f367c104c7ef5a77bee29763
+Subproject commit d7d5303e76a69f5fd0fe2b3b9f6be9f25f1fd824
More information about the tor-commits
mailing list