← Back to team overview

zeitgeist team mailing list archive

[Merge] lp:~ilidrissi.amine/zeitgeist/zeitgeist-logging into lp:zeitgeist

 

Mohamed Amine IL Idrissi has proposed merging lp:~ilidrissi.amine/zeitgeist/zeitgeist-logging into lp:zeitgeist.

Requested reviews:
  Zeitgeist Framework Team (zeitgeist)
Related bugs:
  #660440 Using logging output for debugging purposes
  https://bugs.launchpad.net/bugs/660440


This branch introduces logging into a file.
-- 
https://code.launchpad.net/~ilidrissi.amine/zeitgeist/zeitgeist-logging/+merge/39237
Your team Zeitgeist Framework Team is requested to review the proposed merge of lp:~ilidrissi.amine/zeitgeist/zeitgeist-logging into lp:zeitgeist.
=== modified file '_zeitgeist/engine/__init__.py'
--- _zeitgeist/engine/__init__.py	2010-09-19 14:15:21 +0000
+++ _zeitgeist/engine/__init__.py	2010-10-24 22:41:50 +0000
@@ -49,6 +49,7 @@
 		BaseDirectory.save_data_path("zeitgeist"))
 	DATABASE_FILE = os.environ.get("ZEITGEIST_DATABASE_PATH",
 		os.path.join(DATA_PATH, "activity.sqlite"))
+	LOG_PATH = os.path.join(BaseDirectory.xdg_cache_home, "zeitgeist", "daemon.log")
 	
 	# D-Bus
 	DBUS_INTERFACE = ZeitgeistDBusInterface.INTERFACE_NAME

=== modified file 'zeitgeist-daemon.py'
--- zeitgeist-daemon.py	2010-10-14 09:42:08 +0000
+++ zeitgeist-daemon.py	2010-10-24 22:41:50 +0000
@@ -28,16 +28,13 @@
 import signal
 from copy import copy
 from subprocess import Popen, PIPE
+from datetime import datetime
+from xdg import BaseDirectory
 
 # Make sure we can find the private _zeitgeist namespace
 from zeitgeist import _config
 _config.setup_path()
 
-# Make sure we can load user extensions, and that they take priority over
-# system level extensions
-from _zeitgeist.engine import constants
-sys.path.insert(0, constants.USER_EXTENSION_PATH)
-
 gettext.install("zeitgeist", _config.localedir, unicode=1)
 DATAHUB = "zeitgeist-datahub"
 
@@ -83,6 +80,10 @@
 	"--shell-completion",
 	action = "store_true", default=False, dest = "shell_completion",
 	help = optparse.SUPPRESS_HELP)
+parser.add_option(
+	"--log-file",
+	action = "store", default = LOG_PATH, dest = "log_file",
+	help = _("Specifies where the log file is saved"))
 
 (_config.options, _config.arguments) = parser.parse_args()
 
@@ -93,7 +94,20 @@
 	print ' '.join(options)
 	sys.exit(0)
 
-logging.basicConfig(level=getattr(logging, _config.options.log_level))
+if _config.options.log_file == LOG_PATH:
+	try:
+		os.mkdir(os.path.join(BaseDirectory.xdg_cache_home, "zeitgeist"))
+	except OSError:
+		pass # directory is already there
+	if os.path.exists(LOG_PATH):
+		os.rename(LOG_PATH, LOG_PATH + "-old")
+logging.basicConfig(filename=_config.options.log_file, level=getattr(logging, _config.options.log_level))
+
+# Make sure we can load user extensions, and that they take priority over
+# system level extensions
+# FIXME: find why sys.path.insert causes logging into a file to fail
+from _zeitgeist.engine import constants
+sys.path.insert(0, constants.USER_EXTENSION_PATH)
 
 from _zeitgeist.engine.remote import RemoteInterface