commit f85683536bb0918f449387bf73f02385a3495bb5 Author: iwakeh iwakeh@torproject.org Date: Mon May 9 22:00:26 2016 +0000
implements task-18922, make logging configurable. --- bin/logging.properties | 20 +++++ bin/run-all | 16 ++++ bin/run-bridgedescs | 2 +- bin/run-bridgepools | 2 +- bin/run-exitlists | 2 +- bin/run-relaydescs | 2 +- bin/run-torperf | 2 +- bin/update-index | 2 +- .../bridgedescs/SanitizedBridgesWriter.java | 3 - .../BridgePoolAssignmentsProcessor.java | 3 - .../collector/exitlists/ExitListDownloader.java | 3 - .../collector/main/LoggingConfiguration.java | 96 ---------------------- .../collector/relaydescs/ArchiveWriter.java | 3 - .../collector/torperf/TorperfDownloader.java | 3 - 14 files changed, 42 insertions(+), 117 deletions(-)
diff --git a/bin/logging.properties b/bin/logging.properties new file mode 100644 index 0000000..5aae3cb --- /dev/null +++ b/bin/logging.properties @@ -0,0 +1,20 @@ +handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler + +.level = FINER + +# if the following dir pattern is changed, LOGGINGPATH='log' in run-all +# needs to be adapted. +java.util.logging.FileHandler.pattern = ./log/collector-%g.log +java.util.logging.FileHandler.limit = 5000000 +java.util.logging.FileHandler.count = 9 +java.util.logging.FileHandler.append = true +java.util.logging.FileHandler.level = FINER +java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter + +java.util.logging.ConsoleHandler.level = WARNING +java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter + +java.util.logging.SimpleFormatter.format = %1$tF %1$tT %4$s %2$s %5$s%n + +sun.net.www.level = SEVERE +sun.level = SEVERE diff --git a/bin/run-all b/bin/run-all new file mode 100755 index 0000000..469aced --- /dev/null +++ b/bin/run-all @@ -0,0 +1,16 @@ +#!/bin/sh + +TOKEN=`expr substr $1 5 20` + +# if the path is changed in properties, this needs to be adapted. +LOGGINGPATH='log' + +if ! test -d $LOGGINGPATH +then mkdir $LOGGINGPATH +fi + +# the following uses one logging configuration for all modules +java -Xmx2g -Djava.util.logging.config.file=./bin/logging.properties -jar collector-0.9.0-dev.jar $TOKEN + +# this would use a special log config for each module +# java -Xmx2g -Djava.util.logging.config.file=./bin/logging.$TOKEN.properties -jar collector-0.9.0-dev.jar $TOKEN diff --git a/bin/run-bridgedescs b/bin/run-bridgedescs index 37eeea5..62d71f7 100755 --- a/bin/run-bridgedescs +++ b/bin/run-bridgedescs @@ -1,3 +1,3 @@ #!/bin/sh -java -Xmx2g -jar collector-0.9.0-dev.jar bridgedescs +`dirname $0`/run-all `basename $0`
diff --git a/bin/run-bridgepools b/bin/run-bridgepools index 9c5c53a..62d71f7 100755 --- a/bin/run-bridgepools +++ b/bin/run-bridgepools @@ -1,3 +1,3 @@ #!/bin/sh -java -Xmx2g -jar collector-0.9.0-dev.jar bridgepools +`dirname $0`/run-all `basename $0`
diff --git a/bin/run-exitlists b/bin/run-exitlists index 3bdef11..62d71f7 100755 --- a/bin/run-exitlists +++ b/bin/run-exitlists @@ -1,3 +1,3 @@ #!/bin/sh -java -Xmx2g -jar collector-0.9.0-dev.jar exitlists +`dirname $0`/run-all `basename $0`
diff --git a/bin/run-relaydescs b/bin/run-relaydescs index 8ad7506..62d71f7 100755 --- a/bin/run-relaydescs +++ b/bin/run-relaydescs @@ -1,3 +1,3 @@ #!/bin/sh -java -Xmx2g -jar collector-0.9.0-dev.jar relaydescs +`dirname $0`/run-all `basename $0`
diff --git a/bin/run-torperf b/bin/run-torperf index 267df58..62d71f7 100755 --- a/bin/run-torperf +++ b/bin/run-torperf @@ -1,3 +1,3 @@ #!/bin/sh -java -Xmx2g -jar collector-0.9.0-dev.jar torperf +`dirname $0`/run-all `basename $0`
diff --git a/bin/update-index b/bin/update-index index 70b0067..6e6c488 100755 --- a/bin/update-index +++ b/bin/update-index @@ -1,3 +1,3 @@ #!/bin/sh -java -Xmx2g -jar collector-0.9.0-dev.jar updateindex +`dirname $0`/run-all run-updateindex
diff --git a/src/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java b/src/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java index f8d61c0..3214715 100644 --- a/src/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java +++ b/src/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java @@ -5,7 +5,6 @@ package org.torproject.collector.bridgedescs;
import org.torproject.collector.main.Configuration; import org.torproject.collector.main.LockFile; -import org.torproject.collector.main.LoggingConfiguration;
import org.apache.commons.codec.DecoderException; import org.apache.commons.codec.binary.Base64; @@ -52,8 +51,6 @@ public class SanitizedBridgesWriter extends Thread {
public static void main(String[] args) {
- /* Initialize logging configuration. */ - new LoggingConfiguration("bridge-descriptors"); Logger logger = Logger.getLogger( SanitizedBridgesWriter.class.getName()); logger.info("Starting bridge-descriptors module of CollecTor."); diff --git a/src/org/torproject/collector/bridgepools/BridgePoolAssignmentsProcessor.java b/src/org/torproject/collector/bridgepools/BridgePoolAssignmentsProcessor.java index 8afaa43..2b6c262 100644 --- a/src/org/torproject/collector/bridgepools/BridgePoolAssignmentsProcessor.java +++ b/src/org/torproject/collector/bridgepools/BridgePoolAssignmentsProcessor.java @@ -5,7 +5,6 @@ package org.torproject.collector.bridgepools;
import org.torproject.collector.main.Configuration; import org.torproject.collector.main.LockFile; -import org.torproject.collector.main.LoggingConfiguration;
import org.apache.commons.codec.DecoderException; import org.apache.commons.codec.binary.Hex; @@ -38,8 +37,6 @@ public class BridgePoolAssignmentsProcessor extends Thread {
public static void main(String[] args) {
- /* Initialize logging configuration. */ - new LoggingConfiguration("bridge-pool-assignments"); Logger logger = Logger.getLogger( BridgePoolAssignmentsProcessor.class.getName()); logger.info("Starting bridge-pool-assignments module of CollecTor."); diff --git a/src/org/torproject/collector/exitlists/ExitListDownloader.java b/src/org/torproject/collector/exitlists/ExitListDownloader.java index d328850..54fd50f 100644 --- a/src/org/torproject/collector/exitlists/ExitListDownloader.java +++ b/src/org/torproject/collector/exitlists/ExitListDownloader.java @@ -5,7 +5,6 @@ package org.torproject.collector.exitlists;
import org.torproject.collector.main.Configuration; import org.torproject.collector.main.LockFile; -import org.torproject.collector.main.LoggingConfiguration; import org.torproject.descriptor.Descriptor; import org.torproject.descriptor.DescriptorParseException; import org.torproject.descriptor.DescriptorParser; @@ -34,8 +33,6 @@ public class ExitListDownloader extends Thread {
public static void main(String[] args) {
- /* Initialize logging configuration. */ - new LoggingConfiguration("exit-lists"); Logger logger = Logger.getLogger(ExitListDownloader.class.getName()); logger.info("Starting exit-lists module of CollecTor.");
diff --git a/src/org/torproject/collector/main/LoggingConfiguration.java b/src/org/torproject/collector/main/LoggingConfiguration.java deleted file mode 100644 index b8a91c7..0000000 --- a/src/org/torproject/collector/main/LoggingConfiguration.java +++ /dev/null @@ -1,96 +0,0 @@ -/* Copyright 2010--2016 The Tor Project - * See LICENSE for licensing information */ - -package org.torproject.collector.main; - -import java.io.File; -import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.TimeZone; -import java.util.logging.ConsoleHandler; -import java.util.logging.FileHandler; -import java.util.logging.Formatter; -import java.util.logging.Handler; -import java.util.logging.Level; -import java.util.logging.LogRecord; -import java.util.logging.Logger; - -/** - * Initialize logging configuration. - * - * Log levels used by CollecTor: - * - * - SEVERE: An event made it impossible to continue program execution. - * - WARNING: A potential problem occurred that requires the operator to - * look after the otherwise unattended setup - * - INFO: Messages on INFO level are meant to help the operator in making - * sure that operation works as expected. - * - FINE: Debug messages that are used to identify problems and which are - * turned on by default. - * - FINER: More detailed debug messages to investigate problems in more - * detail. Not turned on by default. Increase log file limit when using - * FINER. - * - FINEST: Most detailed debug messages. Not used. - */ -public class LoggingConfiguration { - public LoggingConfiguration(String moduleName) { - - /* Remove default console handler. */ - for (Handler h : Logger.getLogger("").getHandlers()) { - Logger.getLogger("").removeHandler(h); - } - - /* Disable logging of internal Sun classes. */ - Logger.getLogger("sun").setLevel(Level.OFF); - - /* Set minimum log level we care about from INFO to FINER. */ - Logger.getLogger("").setLevel(Level.FINER); - - /* Create log handler that writes messages on WARNING or higher to the - * console. */ - final SimpleDateFormat dateTimeFormat = - new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - dateTimeFormat.setTimeZone(TimeZone.getTimeZone("UTC")); - Formatter cf = new Formatter() { - public String format(LogRecord record) { - return dateTimeFormat.format(new Date(record.getMillis())) + " " - + record.getMessage() + "\n"; - } - }; - Handler ch = new ConsoleHandler(); - ch.setFormatter(cf); - ch.setLevel(Level.WARNING); - Logger.getLogger("").addHandler(ch); - - /* Initialize own logger for this class. */ - Logger logger = Logger.getLogger( - LoggingConfiguration.class.getName()); - - /* Create log handler that writes all messages on FINE or higher to a - * local file. */ - Formatter ff = new Formatter() { - public String format(LogRecord record) { - return dateTimeFormat.format(new Date(record.getMillis())) + " " - + record.getLevel() + " " + record.getSourceClassName() + " " - + record.getSourceMethodName() + " " + record.getMessage() - + (record.getThrown() != null ? " " + record.getThrown() : "") - + "\n"; - } - }; - try { - new File("log").mkdirs(); - FileHandler fh = new FileHandler("log/" + moduleName, 5000000, 5, - true); - fh.setFormatter(ff); - fh.setLevel(Level.FINE); - Logger.getLogger("").addHandler(fh); - } catch (SecurityException e) { - logger.log(Level.WARNING, "No permission to create log file. " - + "Logging to file is disabled.", e); - } catch (IOException e) { - logger.log(Level.WARNING, "Could not write to log file. Logging to " - + "file is disabled.", e); - } - } -} diff --git a/src/org/torproject/collector/relaydescs/ArchiveWriter.java b/src/org/torproject/collector/relaydescs/ArchiveWriter.java index 370b5ea..ee87b12 100644 --- a/src/org/torproject/collector/relaydescs/ArchiveWriter.java +++ b/src/org/torproject/collector/relaydescs/ArchiveWriter.java @@ -5,7 +5,6 @@ package org.torproject.collector.relaydescs;
import org.torproject.collector.main.Configuration; import org.torproject.collector.main.LockFile; -import org.torproject.collector.main.LoggingConfiguration; import org.torproject.descriptor.DescriptorParseException; import org.torproject.descriptor.DescriptorParser; import org.torproject.descriptor.DescriptorSourceFactory; @@ -39,8 +38,6 @@ public class ArchiveWriter extends Thread {
public static void main(String[] args) {
- /* Initialize logging configuration. */ - new LoggingConfiguration("relay-descriptors"); Logger logger = Logger.getLogger(ArchiveWriter.class.getName()); logger.info("Starting relay-descriptors module of CollecTor.");
diff --git a/src/org/torproject/collector/torperf/TorperfDownloader.java b/src/org/torproject/collector/torperf/TorperfDownloader.java index a2c94ef..7bcfbf3 100644 --- a/src/org/torproject/collector/torperf/TorperfDownloader.java +++ b/src/org/torproject/collector/torperf/TorperfDownloader.java @@ -5,7 +5,6 @@ package org.torproject.collector.torperf;
import org.torproject.collector.main.Configuration; import org.torproject.collector.main.LockFile; -import org.torproject.collector.main.LoggingConfiguration;
import java.io.BufferedReader; import java.io.BufferedWriter; @@ -34,8 +33,6 @@ public class TorperfDownloader extends Thread {
public static void main(String[] args) {
- /* Initialize logging configuration. */ - new LoggingConfiguration("torperf"); Logger logger = Logger.getLogger(TorperfDownloader.class.getName()); logger.info("Starting torperf module of CollecTor.");