diff options
Diffstat (limited to 'deluge/ui')
37 files changed, 196 insertions, 95 deletions
diff --git a/deluge/ui/client.py b/deluge/ui/client.py index 3fbae6e6f..f7d808018 100644 --- a/deluge/ui/client.py +++ b/deluge/ui/client.py @@ -33,6 +33,7 @@ # # +import logging from twisted.internet.protocol import Protocol, ClientFactory from twisted.internet import reactor, ssl, defer try: @@ -44,7 +45,6 @@ import zlib import deluge.common import deluge.component as component -from deluge.log import LOG as log if deluge.common.windows_check(): import win32api @@ -55,6 +55,8 @@ RPC_RESPONSE = 1 RPC_ERROR = 2 RPC_EVENT = 3 +log = logging.getLogger(__name__) + def format_kwargs(kwargs): return ", ".join([key + "=" + str(value) for key, value in kwargs.items()]) @@ -140,7 +142,7 @@ class DelugeRPCProtocol(Protocol): while data: # Increase the byte counter self.factory.bytes_recv += len(data) - + dobj = zlib.decompressobj() try: request = rencode.loads(dobj.decompress(data)) @@ -213,7 +215,7 @@ class DelugeRPCClientFactory(ClientFactory): def __init__(self, daemon, event_handlers): self.daemon = daemon self.event_handlers = event_handlers - + self.bytes_recv = 0 self.bytes_sent = 0 @@ -329,7 +331,7 @@ class DaemonSSLProxy(DaemonProxy): :param request_id: the request_id of the Deferred to pop :type request_id: int - + """ return self.__deferred.pop(request_id) @@ -343,7 +345,7 @@ class DaemonSSLProxy(DaemonProxy): :param handler: the function to be called when `:param:event` is emitted from the daemon :type handler: function - + """ if event not in self.__factory.event_handlers: # This is a new event to handle, so we need to tell the daemon @@ -422,10 +424,10 @@ class DaemonSSLProxy(DaemonProxy): def get_bytes_recv(self): return self.__factory.bytes_recv - + def get_bytes_sent(self): return self.__factory.bytes_sent - + class DaemonClassicProxy(DaemonProxy): def __init__(self, event_handlers={}): import deluge.core.daemon @@ -466,7 +468,7 @@ class DaemonClassicProxy(DaemonProxy): :param handler: the function to be called when `:param:event` is emitted from the daemon :type handler: function - + """ self.__daemon.core.eventmanager.register_event_handler(event, handler) @@ -571,7 +573,7 @@ class Client(object): :rtype: bool :raises OSError: received from subprocess.call() - + """ try: if deluge.common.windows_check(): @@ -679,7 +681,7 @@ class Client(object): def get_bytes_recv(self): """ Returns the number of bytes received from the daemon. - + :returns: the number of bytes received :rtype: int """ @@ -688,11 +690,11 @@ class Client(object): def get_bytes_sent(self): """ Returns the number of bytes sent to the daemon. - + :returns: the number of bytes sent :rtype: int """ return self._daemon_proxy.get_bytes_sent() - + # This is the object clients will use client = Client() diff --git a/deluge/ui/common.py b/deluge/ui/common.py index 5f53db84e..fb9048d01 100644 --- a/deluge/ui/common.py +++ b/deluge/ui/common.py @@ -40,6 +40,7 @@ all the interfaces. import os import sys +import logging import urlparse import locale @@ -51,9 +52,10 @@ except ImportError: from deluge import bencode from deluge.common import decode_string, path_join -from deluge.log import LOG as log import deluge.configmanager +log = logging.getLogger(__name__) + class TorrentInfo(object): """ Collects information about a torrent file. diff --git a/deluge/ui/console/commands/config.py b/deluge/ui/console/commands/config.py index 54ef15ee5..e74ad344e 100644 --- a/deluge/ui/console/commands/config.py +++ b/deluge/ui/console/commands/config.py @@ -34,18 +34,20 @@ # # +import re +import logging +import tokenize +import cStringIO +from optparse import make_option + from twisted.internet import defer from deluge.ui.console.main import BaseCommand import deluge.ui.console.colors as colors from deluge.ui.client import client import deluge.component as component -from deluge.log import LOG as log - -from optparse import make_option -import re -import cStringIO, tokenize +log = logging.getLogger(__name__) def atom(next, token): """taken with slight modifications from http://effbot.org/zone/simple-iterator-parser.htm""" diff --git a/deluge/ui/console/eventlog.py b/deluge/ui/console/eventlog.py index 91e258ae1..df1447bae 100644 --- a/deluge/ui/console/eventlog.py +++ b/deluge/ui/console/eventlog.py @@ -34,12 +34,13 @@ # +import logging import deluge.component as component import deluge.common import colors from deluge.ui.client import client -from deluge.log import LOG as log +log = logging.getLogger(__name__) class EventLog(component.Component): """ diff --git a/deluge/ui/console/main.py b/deluge/ui/console/main.py index 8235ee907..09f534482 100644 --- a/deluge/ui/console/main.py +++ b/deluge/ui/console/main.py @@ -34,7 +34,9 @@ # # -import os, sys +import os +import sys +import logging import optparse import shlex import locale @@ -50,9 +52,10 @@ from deluge.ui.console.statusbars import StatusBars from deluge.ui.console.eventlog import EventLog import screen import colors -from deluge.log import LOG as log from deluge.ui.ui import _UI +log = logging.getLogger(__name__) + class Console(_UI): help = """Starts the Deluge console interface""" diff --git a/deluge/ui/console/screen.py b/deluge/ui/console/screen.py index ad0da738f..bf6b53190 100644 --- a/deluge/ui/console/screen.py +++ b/deluge/ui/console/screen.py @@ -34,6 +34,7 @@ # import sys +import logging try: import curses except ImportError: @@ -48,9 +49,10 @@ try: except: pass -from deluge.log import LOG as log from twisted.internet import reactor +log = logging.getLogger(__name__) + class CursesStdIO(object): """fake fd to be registered as a reader with the twisted reactor. Curses classes needing input should extend this""" diff --git a/deluge/ui/coreconfig.py b/deluge/ui/coreconfig.py index c56019729..6120dcfa8 100644 --- a/deluge/ui/coreconfig.py +++ b/deluge/ui/coreconfig.py @@ -34,9 +34,11 @@ # +import logging import deluge.component as component from deluge.ui.client import client -from deluge.log import LOG as log + +log = logging.getLogger(__name__) class CoreConfig(component.Component): def __init__(self): diff --git a/deluge/ui/gtkui/addtorrentdialog.py b/deluge/ui/gtkui/addtorrentdialog.py index 62e769de8..a4fb421f0 100644 --- a/deluge/ui/gtkui/addtorrentdialog.py +++ b/deluge/ui/gtkui/addtorrentdialog.py @@ -36,10 +36,12 @@ import pygtk pygtk.require('2.0') -import gtk, gtk.glade +import gtk +import gtk.glade import gettext import gobject import base64 +import logging import os import pkg_resources @@ -48,12 +50,13 @@ from deluge.ui.client import client import deluge.component as component import listview from deluge.configmanager import ConfigManager -from deluge.log import LOG as log import deluge.common import deluge.ui.common import dialogs import common +log = logging.getLogger(__name__) + class AddTorrentDialog(component.Component): def __init__(self): component.Component.__init__(self, "AddTorrentDialog") diff --git a/deluge/ui/gtkui/common.py b/deluge/ui/gtkui/common.py index 5b25fa537..b584c81b7 100644 --- a/deluge/ui/gtkui/common.py +++ b/deluge/ui/gtkui/common.py @@ -39,15 +39,17 @@ import os import pygtk pygtk.require('2.0') -import gtk, gtk.glade - +import gtk +import gtk.glade +import logging import pkg_resources from deluge.ui.client import client import deluge.component as component -from deluge.log import LOG as log import deluge.common +log = logging.getLogger(__name__) + def get_logo(size): """Returns a deluge logo pixbuf based on the size parameter.""" if deluge.common.windows_check() or deluge.common.osx_check(): diff --git a/deluge/ui/gtkui/connectionmanager.py b/deluge/ui/gtkui/connectionmanager.py index 3b9ddf417..96fef9d1d 100644 --- a/deluge/ui/gtkui/connectionmanager.py +++ b/deluge/ui/gtkui/connectionmanager.py @@ -38,6 +38,7 @@ import pkg_resources import urlparse import time import hashlib +import logging from twisted.internet import reactor import deluge.component as component @@ -48,9 +49,10 @@ from deluge.ui.client import client import deluge.ui.client import deluge.ui.common from deluge.configmanager import ConfigManager -from deluge.log import LOG as log import dialogs +log = logging.getLogger(__name__) + DEFAULT_HOST = "127.0.0.1" DEFAULT_PORT = 58846 diff --git a/deluge/ui/gtkui/createtorrentdialog.py b/deluge/ui/gtkui/createtorrentdialog.py index 5624a634f..2fb7b689a 100644 --- a/deluge/ui/gtkui/createtorrentdialog.py +++ b/deluge/ui/gtkui/createtorrentdialog.py @@ -40,6 +40,7 @@ import pkg_resources import os.path import gobject import base64 +import logging from twisted.internet.threads import deferToThread @@ -48,7 +49,8 @@ import listview import deluge.component as component import deluge.common from deluge.configmanager import ConfigManager -from deluge.log import LOG as log + +log = logging.getLogger(__name__) class CreateTorrentDialog: def show(self): diff --git a/deluge/ui/gtkui/details_tab.py b/deluge/ui/gtkui/details_tab.py index 411d38423..96f39cfbf 100644 --- a/deluge/ui/gtkui/details_tab.py +++ b/deluge/ui/gtkui/details_tab.py @@ -34,14 +34,16 @@ # -import gtk, gtk.glade +import gtk +import gtk.glade +import logging from deluge.ui.client import client import deluge.component as component from deluge.common import fsize, is_url from deluge.ui.gtkui.torrentdetails import Tab -from deluge.log import LOG as log +log = logging.getLogger(__name__) class DetailsTab(Tab): def __init__(self): diff --git a/deluge/ui/gtkui/edittrackersdialog.py b/deluge/ui/gtkui/edittrackersdialog.py index d710cc6c6..2c9dc73a6 100644 --- a/deluge/ui/gtkui/edittrackersdialog.py +++ b/deluge/ui/gtkui/edittrackersdialog.py @@ -34,14 +34,17 @@ # -import gtk, gtk.glade +import gtk +import gtk.glade +import logging import pkg_resources import deluge.common import common from deluge.ui.client import client import deluge.component as component -from deluge.log import LOG as log + +log = logging.getLogger(__name__) class EditTrackersDialog: def __init__(self, torrent_id, parent=None): diff --git a/deluge/ui/gtkui/files_tab.py b/deluge/ui/gtkui/files_tab.py index c43d85b1b..6feeab7ea 100644 --- a/deluge/ui/gtkui/files_tab.py +++ b/deluge/ui/gtkui/files_tab.py @@ -34,11 +34,14 @@ # -import gtk, gtk.glade, gtk.gdk +import gtk +import gtk.gdk +import gtk.glade import gobject import gettext import os.path import cPickle +import logging from deluge.ui.gtkui.torrentdetails import Tab from deluge.ui.client import client @@ -48,7 +51,7 @@ import deluge.component as component import deluge.common import common -from deluge.log import LOG as log +log = logging.getLogger(__name__) def cell_priority(column, cell, model, row, data): if model.get_value(row, 5) == -1: diff --git a/deluge/ui/gtkui/filtertreeview.py b/deluge/ui/gtkui/filtertreeview.py index 1438c70dc..d7a242840 100644 --- a/deluge/ui/gtkui/filtertreeview.py +++ b/deluge/ui/gtkui/filtertreeview.py @@ -37,14 +37,16 @@ import gtk import gtk.glade +import logging import pkg_resources import deluge.component as component import deluge.common -from deluge.log import LOG as log from deluge.ui.client import client from deluge.configmanager import ConfigManager +log = logging.getLogger(__name__) + STATE_PIX = { "All": "all", "Downloading": "downloading", @@ -126,7 +128,7 @@ class FilterTreeView(component.Component): # Force the theme to use an expander-size of 15 so that we don't cut out # entries due to our indentation hack. gtk.rc_parse_string('style "treeview-style" { GtkTreeView::expander-size = 15 } class "GtkTreeView" style "treeview-style"') - + self.label_view.set_model(self.treestore) self.label_view.get_selection().connect("changed", self.on_selection_changed) self.create_model_filter() diff --git a/deluge/ui/gtkui/gtkui.py b/deluge/ui/gtkui/gtkui.py index 3ff092495..1609a2869 100644 --- a/deluge/ui/gtkui/gtkui.py +++ b/deluge/ui/gtkui/gtkui.py @@ -32,7 +32,6 @@ # statement from all source files in the program, then also delete it here. # # -from deluge.log import LOG as log # Install the twisted reactor from twisted.internet import gtk2reactor @@ -42,8 +41,12 @@ import gobject import gettext import locale import pkg_resources -import gtk, gtk.glade +import gtk +import gtk.glade import sys +import logging + +log = logging.getLogger(__name__) # Initialize gettext try: diff --git a/deluge/ui/gtkui/ipcinterface.py b/deluge/ui/gtkui/ipcinterface.py index dc2f917ea..f63a8a45c 100644 --- a/deluge/ui/gtkui/ipcinterface.py +++ b/deluge/ui/gtkui/ipcinterface.py @@ -37,22 +37,24 @@ import sys import os import base64 +import logging try: import rencode except ImportError: import deluge.rencode as rencode - + import deluge.component as component from deluge.ui.client import client import deluge.common from deluge.configmanager import ConfigManager -from deluge.log import LOG as log from twisted.internet.protocol import Factory, Protocol, ClientFactory from twisted.internet import reactor import twisted.internet.error +log = logging.getLogger(__name__) + class IPCProtocolServer(Protocol): def dataReceived(self, data): data = rencode.loads(data) @@ -62,11 +64,11 @@ class IPCProtocolClient(Protocol): def connectionMade(self): self.transport.write(rencode.dumps(self.factory.args)) self.transport.loseConnection() - + def connectionLost(self, reason): reactor.stop() self.factory.stop = True - + class IPCClientFactory(ClientFactory): protocol = IPCProtocolClient @@ -74,11 +76,11 @@ class IPCClientFactory(ClientFactory): self.stop = False self.args = args self.connect_failed = connect_failed - + def clientConnectionFailed(self, connector, reason): log.info("Connection to running instance failed. Starting new one..") reactor.stop() - + class IPCInterface(component.Component): def __init__(self, args): component.Component.__init__(self, "IPCInterface") @@ -165,7 +167,7 @@ class IPCInterface(component.Component): os.remove(socket) except Exception, e: log.error("Unable to remove socket file: %s", e) - + lock = socket + ".lock" if os.path.lexists(lock): try: @@ -180,7 +182,7 @@ class IPCInterface(component.Component): log.error("Unable to start IPC listening socket: %s", e) finally: process_args(args) - + def shutdown(self): if deluge.common.windows_check(): import win32api diff --git a/deluge/ui/gtkui/listview.py b/deluge/ui/gtkui/listview.py index c083fad76..9a2aed9a6 100644 --- a/deluge/ui/gtkui/listview.py +++ b/deluge/ui/gtkui/listview.py @@ -37,6 +37,7 @@ import cPickle import os.path +import logging import pygtk pygtk.require('2.0') @@ -46,13 +47,13 @@ import gettext from deluge.configmanager import ConfigManager import deluge.configmanager import deluge.common -from deluge.log import LOG as log from gobject import signal_new, SIGNAL_RUN_LAST, TYPE_NONE from gtk import gdk signal_new('button-press-event', gtk.TreeViewColumn, SIGNAL_RUN_LAST, TYPE_NONE, (gdk.Event,)) +log = logging.getLogger(__name__) # Cell data functions to pass to add_func_column() def cell_data_speed(column, cell, model, row, data): diff --git a/deluge/ui/gtkui/mainwindow.py b/deluge/ui/gtkui/mainwindow.py index 344359f5b..12fa5a96d 100644 --- a/deluge/ui/gtkui/mainwindow.py +++ b/deluge/ui/gtkui/mainwindow.py @@ -36,8 +36,10 @@ import pygtk pygtk.require('2.0') -import gtk, gtk.glade +import gtk +import gtk.glade import gobject +import logging import pkg_resources from urlparse import urlparse import urllib @@ -51,7 +53,7 @@ from twisted.internet import reactor import deluge.common import common -from deluge.log import LOG as log +log = logging.getLogger(__name__) class MainWindow(component.Component): def __init__(self): diff --git a/deluge/ui/gtkui/menubar.py b/deluge/ui/gtkui/menubar.py index 1a9026965..901e6b3c6 100644 --- a/deluge/ui/gtkui/menubar.py +++ b/deluge/ui/gtkui/menubar.py @@ -36,7 +36,9 @@ import pygtk pygtk.require('2.0') -import gtk, gtk.glade +import gtk +import gtk.glade +import logging import pkg_resources import deluge.error @@ -46,7 +48,7 @@ import deluge.common import common from deluge.configmanager import ConfigManager -from deluge.log import LOG as log +log = logging.getLogger(__name__) class MenuBar(component.Component): def __init__(self): diff --git a/deluge/ui/gtkui/notification.py b/deluge/ui/gtkui/notification.py index fe2d1e0e9..7e17fa9d2 100644 --- a/deluge/ui/gtkui/notification.py +++ b/deluge/ui/gtkui/notification.py @@ -34,13 +34,15 @@ # +import logging import deluge.component as component import deluge.common import common -from deluge.log import LOG as log from deluge.configmanager import ConfigManager from deluge.ui.client import client +log = logging.getLogger(__name__) + class Notification: def __init__(self): self.config = ConfigManager("gtkui.conf") @@ -53,7 +55,9 @@ class Notification: self.get_torrent_status(torrent_id) def get_torrent_status(self, torrent_id): - component.get("SessionProxy").get_torrent_status(torrent_id, ["name", "num_files", "total_payload_download"]).addCallback(self._on_get_torrent_status) + component.get("SessionProxy").get_torrent_status(torrent_id, [ + "name", "num_files", "total_payload_download" + ]).addCallback(self._on_get_torrent_status) def _on_get_torrent_status(self, status): if status is None: @@ -77,7 +81,10 @@ class Notification: if not pynotify.init("Deluge"): return title = deluge.common.xml_encode(_("Torrent complete")) - message = deluge.common.xml_encode(status["name"] + "\n" + _("Including %i files" % status["num_files"])) + message = deluge.common.xml_encode( + status["name"] + "\n" + + _("Including %i files" % status["num_files"]) + ) self.note = pynotify.Notification(title, message) self.note.set_icon_from_pixbuf(common.get_logo(48)) if not self.note.show(): @@ -106,9 +113,12 @@ class Notification: headers = "From: %s\r\nTo: %s\r\nSubject: %s\r\n\r\n" % ( self.config["ntf_email_add"], self.config["ntf_email_add"], "Finished torrent %s" % (status["name"])) - text = _("This email is to inform you that Deluge has finished downloading %(name)s , \ - which includes %(num_files)i files.\nTo stop receiving these alerts, simply turn off \ - email notification in Deluge's preferences.\n\nThank you,\nDeluge") % {"name": status["name"], "num_files": status["num_files"]} + text = _("This email is to inform you that Deluge has finished " + "downloading %(name)s , which includes %(num_files)i files.\n" + "To stop receiving these alerts, simply turn off email " + "notification in Deluge's preferences.\n\n" + "Thank you,\nDeluge") % {"name": status["name"], + "num_files": status["num_files"]} message = headers + text if self.config["ntf_security"] == 'SSL': port = 465 diff --git a/deluge/ui/gtkui/peers_tab.py b/deluge/ui/gtkui/peers_tab.py index 9e4b92dda..9ac5a6de9 100644 --- a/deluge/ui/gtkui/peers_tab.py +++ b/deluge/ui/gtkui/peers_tab.py @@ -34,7 +34,9 @@ # -import gtk, gtk.glade +import gtk +import gtk.glade +import logging import os.path import cPickle import pkg_resources @@ -48,9 +50,10 @@ import deluge.component as component import deluge.common from deluge.ui.gtkui.listview import cell_data_speed as cell_data_speed from deluge.ui.gtkui.torrentdetails import Tab -from deluge.log import LOG as log from deluge.ui.countries import COUNTRIES +log = logging.getLogger(__name__) + def cell_data_progress(column, cell, model, row, data): value = model.get_value(row, data) cell.set_property("value", value * 100) diff --git a/deluge/ui/gtkui/pluginmanager.py b/deluge/ui/gtkui/pluginmanager.py index 8d0126461..b5169977d 100644 --- a/deluge/ui/gtkui/pluginmanager.py +++ b/deluge/ui/gtkui/pluginmanager.py @@ -34,11 +34,13 @@ # +import logging import deluge.component as component import deluge.pluginmanagerbase from deluge.ui.client import client from deluge.configmanager import ConfigManager -from deluge.log import LOG as log + +log = logging.getLogger(__name__) class PluginManager(deluge.pluginmanagerbase.PluginManagerBase, component.Component): diff --git a/deluge/ui/gtkui/preferences.py b/deluge/ui/gtkui/preferences.py index 0f9a21915..28aa8762d 100644 --- a/deluge/ui/gtkui/preferences.py +++ b/deluge/ui/gtkui/preferences.py @@ -36,11 +36,12 @@ import pygtk pygtk.require('2.0') -import gtk, gtk.glade +import gtk +import gtk.glade +import logging import pkg_resources import deluge.component as component -from deluge.log import LOG as log from deluge.ui.client import client import deluge.common import deluge.error @@ -48,13 +49,15 @@ import common from deluge.configmanager import ConfigManager import deluge.configmanager +log = logging.getLogger(__name__) + class Preferences(component.Component): def __init__(self): component.Component.__init__(self, "Preferences") self.window = component.get("MainWindow") - self.glade = gtk.glade.XML( - pkg_resources.resource_filename("deluge.ui.gtkui", - "glade/preferences_dialog.glade")) + self.glade = gtk.glade.XML(pkg_resources.resource_filename( + "deluge.ui.gtkui", "glade/preferences_dialog.glade" + )) self.pref_dialog = self.glade.get_widget("pref_dialog") self.pref_dialog.set_icon(common.get_deluge_icon()) self.treeview = self.glade.get_widget("treeview") diff --git a/deluge/ui/gtkui/queuedtorrents.py b/deluge/ui/gtkui/queuedtorrents.py index fa18a1f87..652473c2c 100644 --- a/deluge/ui/gtkui/queuedtorrents.py +++ b/deluge/ui/gtkui/queuedtorrents.py @@ -36,7 +36,9 @@ import base64 import os.path -import gtk, gtk.glade +import gtk +import gtk.glade +import logging import gobject import pkg_resources @@ -44,9 +46,10 @@ import deluge.component as component from deluge.ui.client import client import deluge.common from deluge.configmanager import ConfigManager -from deluge.log import LOG as log import common +log = logging.getLogger(__name__) + class QueuedTorrents(component.Component): def __init__(self): component.Component.__init__(self, "QueuedTorrents", depend=["StatusBar", "AddTorrentDialog"]) @@ -176,7 +179,7 @@ class QueuedTorrents(component.Component): if self.config["interactive_add"]: def on_show(result): component.get("AddTorrentDialog").add_from_url(torrent_path) - + d = component.get("AddTorrentDialog").show(self.config["focus_add_dialog"]) d.addCallback(on_show) else: diff --git a/deluge/ui/gtkui/removetorrentdialog.py b/deluge/ui/gtkui/removetorrentdialog.py index 071992ba5..36257eed0 100644 --- a/deluge/ui/gtkui/removetorrentdialog.py +++ b/deluge/ui/gtkui/removetorrentdialog.py @@ -33,12 +33,15 @@ # # -import gtk, gtk.glade +import gtk +import gtk.glade +import logging import pkg_resources from deluge.ui.client import client import deluge.component as component -from deluge.log import LOG as log + +log = logging.getLogger(__name__) class RemoveTorrentDialog(object): """ diff --git a/deluge/ui/gtkui/sidebar.py b/deluge/ui/gtkui/sidebar.py index 7c1768b37..1b1cca129 100644 --- a/deluge/ui/gtkui/sidebar.py +++ b/deluge/ui/gtkui/sidebar.py @@ -37,11 +37,13 @@ import gtk import gtk.glade +import logging import deluge.component as component import deluge.common from deluge.configmanager import ConfigManager -from deluge.log import LOG as log + +log = logging.getLogger(__name__) class SideBar(component.Component): """ diff --git a/deluge/ui/gtkui/status_tab.py b/deluge/ui/gtkui/status_tab.py index 6feed8ed9..255c303cc 100644 --- a/deluge/ui/gtkui/status_tab.py +++ b/deluge/ui/gtkui/status_tab.py @@ -35,13 +35,16 @@ # -import gtk, gtk.glade +import gtk +import gtk.glade +import logging from deluge.ui.client import client import deluge.component as component import deluge.common from deluge.ui.gtkui.torrentdetails import Tab -from deluge.log import LOG as log + +log = logging.getLogger(__name__) def fpeer_sized(first, second): return "%s (%s)" % (deluge.common.fsize(first), deluge.common.fsize(second)) diff --git a/deluge/ui/gtkui/statusbar.py b/deluge/ui/gtkui/statusbar.py index a95e78b61..60202a213 100644 --- a/deluge/ui/gtkui/statusbar.py +++ b/deluge/ui/gtkui/statusbar.py @@ -36,13 +36,15 @@ import gtk import gobject +import logging from deluge.ui.client import client import deluge.component as component import deluge.common import common from deluge.configmanager import ConfigManager -from deluge.log import LOG as log + +log = logging.getLogger(__name__) class StatusBarItem: def __init__(self, image=None, stock=None, text=None, callback=None, tooltip=None): diff --git a/deluge/ui/gtkui/systemtray.py b/deluge/ui/gtkui/systemtray.py index 807852399..95beafac6 100644 --- a/deluge/ui/gtkui/systemtray.py +++ b/deluge/ui/gtkui/systemtray.py @@ -35,15 +35,17 @@ import gtk +import logging import pkg_resources import deluge.component as component from deluge.ui.client import client import deluge.common from deluge.configmanager import ConfigManager -from deluge.log import LOG as log import common +log = logging.getLogger(__name__) + class SystemTray(component.Component): def __init__(self): component.Component.__init__(self, "SystemTray", interval=4) diff --git a/deluge/ui/gtkui/toolbar.py b/deluge/ui/gtkui/toolbar.py index 81b0c3e8e..5099fd54d 100644 --- a/deluge/ui/gtkui/toolbar.py +++ b/deluge/ui/gtkui/toolbar.py @@ -36,15 +36,18 @@ import pygtk pygtk.require('2.0') -import gtk, gtk.glade +import gtk +import gtk.glade import gobject +import logging import deluge.component as component from deluge.ui.client import client -from deluge.log import LOG as log from deluge.common import TORRENT_STATE from deluge.configmanager import ConfigManager +log = logging.getLogger(__name__) + class ToolBar(component.Component): def __init__(self): component.Component.__init__(self, "ToolBar") diff --git a/deluge/ui/gtkui/torrentdetails.py b/deluge/ui/gtkui/torrentdetails.py index 035e3ac4f..6241a218f 100644 --- a/deluge/ui/gtkui/torrentdetails.py +++ b/deluge/ui/gtkui/torrentdetails.py @@ -36,17 +36,19 @@ """The torrent details component shows info about the selected torrent.""" -import gtk, gtk.glade +import gtk +import gtk.glade import os import os.path import cPickle +import logging import deluge.component as component from deluge.ui.client import client from deluge.configmanager import ConfigManager import deluge.configmanager -from deluge.log import LOG as log +log = logging.getLogger(__name__) class Tab: def __init__(self): diff --git a/deluge/ui/gtkui/torrentview.py b/deluge/ui/gtkui/torrentview.py index 5f1e45228..3753fa105 100644 --- a/deluge/ui/gtkui/torrentview.py +++ b/deluge/ui/gtkui/torrentview.py @@ -38,19 +38,22 @@ import pygtk pygtk.require('2.0') -import gtk, gtk.glade +import gtk +import gtk.glade import gettext import gobject +import logging from urlparse import urlparse import deluge.common import deluge.component as component from deluge.ui.client import client -from deluge.log import LOG as log import listview from deluge.ui.tracker_icons import TrackerIcons from removetorrentdialog import RemoveTorrentDialog +log = logging.getLogger(__name__) + # Status icons.. Create them from file only once to avoid constantly # re-creating them. icon_downloading = gtk.gdk.pixbuf_new_from_file( diff --git a/deluge/ui/sessionproxy.py b/deluge/ui/sessionproxy.py index 50b8af4ee..f1e5d3e3c 100644 --- a/deluge/ui/sessionproxy.py +++ b/deluge/ui/sessionproxy.py @@ -33,13 +33,15 @@ # # +import logging from twisted.internet.defer import maybeDeferred, succeed import deluge.component as component from deluge.ui.client import client -from deluge.log import LOG as log import time +log = logging.getLogger(__name__) + class SessionProxy(component.Component): """ The SessionProxy component is used to cache session information client-side diff --git a/deluge/ui/tracker_icons.py b/deluge/ui/tracker_icons.py index 91a02e46e..008783696 100644 --- a/deluge/ui/tracker_icons.py +++ b/deluge/ui/tracker_icons.py @@ -34,6 +34,7 @@ # import os +import logging from HTMLParser import HTMLParser, HTMLParseError from urlparse import urljoin, urlparse from tempfile import mkstemp @@ -45,7 +46,7 @@ from deluge.component import Component from deluge.configmanager import get_config_dir from deluge.httpdownloader import download_file from deluge.decorators import proxy -from deluge.log import LOG as log + try: import PIL.Image as Image @@ -55,6 +56,8 @@ except ImportError: else: PIL_INSTALLED = True +log = logging.getLogger(__name__) + class TrackerIcon(object): """ Represents a tracker's icon diff --git a/deluge/ui/ui.py b/deluge/ui/ui.py index b210e2d1d..06fe76c4e 100644 --- a/deluge/ui/ui.py +++ b/deluge/ui/ui.py @@ -33,6 +33,7 @@ # # +import logging from optparse import OptionParser, OptionGroup import deluge.common import deluge.configmanager @@ -65,6 +66,8 @@ class _UI(object): help="Set the log level: none, info, warning, error, critical, debug", action="store", type="str") group.add_option("-q", "--quiet", dest="quiet", help="Sets the log level to 'none', this is the same as `-L none`", action="store_true", default=False) + group.add_option("-r", "--rotate-logs", + help="Rotate logfiles.", action="store_true", default=False) self.__parser.add_option_group(group) @property @@ -89,9 +92,17 @@ class _UI(object): if self.__options.quiet: self.__options.loglevel = "none" + logfile_mode = 'w' + if self.__options.rotate_logs: + logfile_mode = 'a' + + # Setup the logger # Setup the logger - deluge.log.setupLogger(level=self.__options.loglevel, filename=self.__options.logfile) - log = deluge.log.LOG + deluge.log.setupLogger(level=self.__options.loglevel, + filename=self.__options.logfile, + filemode=logfile_mode) + + log = logging.getLogger(__name__) if self.__options.config: if not deluge.configmanager.set_config_dir(self.__options.config): @@ -105,7 +116,8 @@ class _UI(object): class UI: def __init__(self, options, args, ui_args): - from deluge.log import LOG as log + import logging + log = logging.getLogger(__name__) log.debug("UI init..") # Set the config directory diff --git a/deluge/ui/web/server.py b/deluge/ui/web/server.py index fa0000809..bb7b12da8 100644 --- a/deluge/ui/web/server.py +++ b/deluge/ui/web/server.py @@ -53,13 +53,13 @@ from twisted.web import http, resource, server, static from deluge import common, component, configmanager from deluge.core.rpcserver import check_ssl_keys -from deluge.log import setupLogger, LOG as _log from deluge.ui import common as uicommon from deluge.ui.tracker_icons import TrackerIcons from deluge.ui.web.auth import Auth from deluge.ui.web.common import Template, compress from deluge.ui.web.json_api import JSON, WebApi from deluge.ui.web.pluginmanager import PluginManager + log = logging.getLogger(__name__) # Initialize gettext @@ -248,7 +248,7 @@ class LookupResource(resource.Resource, component.Component): self.__paths = {} for directory in directories: self.addDirectory(directory) - + def addDirectory(self, directory, path=""): log.debug("Adding directory `%s` with path `%s`", directory, path) paths = self.__paths.setdefault(path, []) @@ -342,10 +342,10 @@ class ScriptResource(resource.Resource, component.Component): self.__scripts[type]["order"].append(path) def remove_script(self, path, type=None): - """ - Removes a script or folder of scripts from the script resource. + """ + Removes a script or folder of scripts from the script resource. - :param path: The path of the folder + :param path: The path of the folder :type path: string :keyword type: The type of script to add (normal, debug, dev) :param type: string @@ -667,13 +667,13 @@ class DelugeWeb(component.Component): def start_normal(self): self.socket = reactor.listenTCP(self.port, self.site) log.info("serving on %s:%s view at http://127.0.0.1:%s", "0.0.0.0", - self.port, self.port) + self.port, self.port) def start_ssl(self): check_ssl_keys() self.socket = reactor.listenSSL(self.port, self.site, ServerContextFactory()) log.info("serving on %s:%s view at https://127.0.0.1:%s", "0.0.0.0", - self.port, self.port) + self.port, self.port) def stop(self): log.info("Shutting down webserver") |