Revision
15466
Author
cdaboo@apple.com
Date
2016-03-01 11:59:08 -0800 (Tue, 01 Mar 2016)

Log Message

Use sys.stdout for cli tool -D logging. Make sure utility log file is always locked to the LogRoot.

Modified Paths

Diff

Modified: CalendarServer/trunk/calendarserver/tools/cmdline.py (15465 => 15466)


--- CalendarServer/trunk/calendarserver/tools/cmdline.py	2016-03-01 19:40:29 UTC (rev 15465)
+++ CalendarServer/trunk/calendarserver/tools/cmdline.py	2016-03-01 19:59:08 UTC (rev 15466)
@@ -29,7 +29,7 @@
 
 from twisted.application.service import Service
 from twisted.internet.defer import inlineCallbacks, succeed
-from twisted.logger import STDLibLogObserver, FileLogObserver, formatEventAsClassicLogText
+from twisted.logger import FileLogObserver, formatEventAsClassicLogText
 from twisted.python.logfile import LogFile
 
 import sys
@@ -88,7 +88,7 @@
     # Install std i/o observer
     observers = []
     if verbose:
-        observers.append(STDLibLogObserver())
+        observers.append(FileLogObserver(sys.stdout, lambda event: formatEventAsClassicLogText(event)))
 
     if reactor is None:
         from twisted.internet import reactor

Modified: CalendarServer/trunk/twistedcaldav/stdconfig.py (15465 => 15466)


--- CalendarServer/trunk/twistedcaldav/stdconfig.py	2016-03-01 19:40:29 UTC (rev 15465)
+++ CalendarServer/trunk/twistedcaldav/stdconfig.py	2016-03-01 19:59:08 UTC (rev 15466)
@@ -1620,7 +1620,8 @@
 
 
 def _updateUtilityLog(configDict, reloading=False):
-    configDict["UtilityLogFile"] = "{}.log".format(basename(sys.argv[0]))
+    # Change just the file name to match the process - leave directory as-is
+    configDict["UtilityLogFile"] = os.path.join(os.path.dirname(configDict["UtilityLogFile"]), "{}.log".format(basename(sys.argv[0])))
 
 
 

Modified: CalendarServer/trunk/twistedcaldav/test/test_stdconfig.py (15465 => 15466)


--- CalendarServer/trunk/twistedcaldav/test/test_stdconfig.py	2016-03-01 19:40:29 UTC (rev 15465)
+++ CalendarServer/trunk/twistedcaldav/test/test_stdconfig.py	2016-03-01 19:59:08 UTC (rev 15466)
@@ -22,8 +22,10 @@
 
 from twistedcaldav.config import Config, ConfigDict
 from twistedcaldav.stdconfig import NoUnicodePlistParser, PListConfigProvider,\
-    _updateDataStore, _updateMultiProcess
+    _updateDataStore, _updateMultiProcess, _updateUtilityLog
 import twistedcaldav.stdconfig
+import sys
+import os
 
 nonASCIIValue = "→←"
 nonASCIIPlist = "<plist version='1.0'><string>%s</string></plist>" % (
@@ -174,3 +176,17 @@
         _updateMultiProcess(configDict)
         self.assertEquals(45, configDict.Postgres.MaxConnections)
         self.assertEquals(67, configDict.Postgres.SharedBuffers)
+
+
+    def test_updateUtilityLog(self):
+        configDict = {
+            "ServerRoot" : "/a/b/c/",
+            "LogRoot" : "Logs",
+            "UtilityLogFile" : "util.txt",
+        }
+        _updateUtilityLog(configDict)
+        self.assertEquals(configDict["UtilityLogFile"], "{}.log".format(os.path.basename(sys.argv[0])))
+
+        _updateDataStore(configDict)
+        _updateUtilityLog(configDict)
+        self.assertEquals(configDict["UtilityLogFile"], "/a/b/c/Logs/{}.log".format(os.path.basename(sys.argv[0])))