Limiting the sizes of logs
[theonering] / src / theonering.py
index da5d8a2..f8a26f4 100755 (executable)
@@ -23,6 +23,7 @@ import os
 import sys
 import signal
 import logging
+import logging.handlers
 import gobject
 
 import dbus.glib
@@ -34,9 +35,6 @@ import constants
 import connection_manager
 
 
-IDLE_TIMEOUT = 10
-
-
 def run_theonering(persist):
        linux_utils.set_process_name(constants.__app_name__)
 
@@ -60,7 +58,10 @@ def run_theonering(persist):
        if persist:
                shutdown_callback = None
        else:
-               gobject_utils.timeout_add_seconds(IDLE_TIMEOUT, timeout_cb)
+               gobject_utils.timeout_add_seconds(
+                       connection_manager.TheOneRingConnectionManager.IDLE_TIMEOUT,
+                       timeout_cb
+               )
                shutdown_callback = on_quit
 
        signal.signal(signal.SIGTERM, lambda: on_quit)
@@ -90,19 +91,17 @@ def main(logToFile):
                        raise
 
        telepathy_utils.debug_divert_messages(os.getenv('THEONERING_LOGFILE'))
-       if logToFile:
-               logging.basicConfig(
-                       level=logging.DEBUG,
-                       filename=constants._user_logpath_,
-                       format='(%(asctime)s) %(levelname)s:%(name)s:%(message)s',
-                       datefmt='%H:%M:%S',
-               )
-       else:
-               logging.basicConfig(
-                       level=logging.DEBUG,
-                       format='(%(asctime)s) %(levelname)s:%(name)s:%(message)s',
-                       datefmt='%H:%M:%S',
-               )
+       logFormat = '(%(asctime)s) %(levelname)-5s %(threadName)s.%(name)s: %(message)s'
+       logging.basicConfig(
+               level=logging.DEBUG,
+               format=logFormat,
+               datefmt='%H:%M:%S',
+       )
+       logging.raiseExceptions = True # Getting funky shutdown behavior, checking it out
+       rotating = logging.handlers.RotatingFileHandler(constants._user_logpath_, maxBytes=512*1024, backupCount=1)
+       rotating.setFormatter(logging.Formatter(logFormat))
+       root = logging.getLogger()
+       root.addHandler(rotating)
        logging.info("telepathy-theonering %s-%s" % (constants.__version__, constants.__build__))
        logging.debug("OS: %s" % (os.uname()[0], ))
        logging.debug("Kernel: %s (%s) for %s" % os.uname()[2:])