From 0ecf881d6fe3deadb8b95a8277b3106728c77114 Mon Sep 17 00:00:00 2001 From: Martijn de Vos Date: Fri, 9 Mar 2018 13:30:19 +0100 Subject: [PATCH] Logging stderr to log file now --- scripts/dispersy-tracker@.service | 2 +- twisted/plugins/tracker_plugin.py | 38 +++++++++++++++---------------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/scripts/dispersy-tracker@.service b/scripts/dispersy-tracker@.service index ab47342b..b0d520cc 100644 --- a/scripts/dispersy-tracker@.service +++ b/scripts/dispersy-tracker@.service @@ -9,7 +9,7 @@ Environment="PYTHONPATH=/opt/dispersy" WorkingDirectory=/opt ExecStartPre=/bin/mkdir -p ${HOME}/%i -ExecStart=/usr/bin/twistd --nodaemon --pidfile= tracker --port=%i --statedir=${HOME}/%i +ExecStart=/usr/bin/twistd --nodaemon --pidfile= tracker --port=%i --statedir=${HOME}/%i --loglevel ${TRACKER_LOGLEVEL} User=dispersy_tracker Group=dispersy_tracker diff --git a/twisted/plugins/tracker_plugin.py b/twisted/plugins/tracker_plugin.py index 3488e54a..c9e81975 100644 --- a/twisted/plugins/tracker_plugin.py +++ b/twisted/plugins/tracker_plugin.py @@ -19,6 +19,8 @@ whenever a introduction request is received for a destroyed overlay. """ import errno +import logging +from logging.handlers import RotatingFileHandler import os import signal import sys @@ -27,12 +29,11 @@ from twisted.application.service import IServiceMaker, MultiService from twisted.conch import manhole_tap from twisted.internet import reactor -from twisted.internet.defer import inlineCallbacks, maybeDeferred, DeferredList +from twisted.internet.defer import maybeDeferred, DeferredList from twisted.internet.task import LoopingCall from twisted.plugin import IPlugin from twisted.python import usage -from twisted.python.log import msg, ILogObserver, FileLogObserver -from twisted.python.logfile import DailyLogFile +from twisted.python.log import msg from twisted.python.threadable import isInIOThread from zope.interface import implements @@ -170,24 +171,10 @@ class Options(usage.Options): ["crypto" , "c", "ECCrypto", "The Crypto object type Dispersy is going to use" , str], ["manhole" , "m", 0 , "Enable manhole telnet service listening at the specified port", int], ["logfile" , "l", "dispersy.log", "Use an alternate dispersy log file name", str], + ["loglevel", "v", "DEBUG", "Set the logging level (DEBUG, INFO, WARN, ERROR)", str] ] -class TrackerMultiService(MultiService): - - def __init__(self, log_file, log_dir): - MultiService.__init__(self) - self.log_file = log_file - self.log_dir = log_dir - - def setServiceParent(self, parent): - MultiService.setServiceParent(self, parent) - # user daily logging - log_file = DailyLogFile(self.log_file, self.log_dir) - logger = FileLogObserver(log_file) - parent.setComponent(ILogObserver, logger.emit) - - class TrackerServiceMaker(object): implements(IServiceMaker, IPlugin) tapname = "tracker" @@ -198,7 +185,7 @@ def makeService(self, options): """ Construct a dispersy service. """ - tracker_service = TrackerMultiService(options["logfile"], options["statedir"]) + tracker_service = MultiService() tracker_service.setName("Dispersy Tracker") # crypto @@ -221,6 +208,19 @@ def makeService(self, options): manhole.startService() def run(): + # Setup logging + if not options["loglevel"]: + options["loglevel"] = "DEBUG" + + print "Using logging level: %s" % options["loglevel"] + log_level = getattr(logging, options["loglevel"]) + + root = logging.getLogger() + root.setLevel(log_level) + handler = RotatingFileHandler(os.path.join(options["statedir"], options["logfile"]), + maxBytes=1024 * 1024 * 100, backupCount=10) + root.addHandler(handler) + # setup dispersy = TrackerDispersy(StandaloneEndpoint(options["port"], options["ip"]),