[Zope-Checkins] CVS: Zope/lib/python/nt_svcutils - service.py:1.1.2.3

Sidnei da Silva sidnei at awkly.org
Wed Apr 13 21:47:50 EDT 2005


Update of /cvs-repository/Zope/lib/python/nt_svcutils
In directory cvs.zope.org:/tmp/cvs-serv6352

Modified Files:
      Tag: Zope-2_7-branch
	service.py 
Log Message:

- Don't kill the service if we can't write to the event log


=== Zope/lib/python/nt_svcutils/service.py 1.1.2.2 => 1.1.2.3 ===
--- Zope/lib/python/nt_svcutils/service.py:1.1.2.2	Tue Apr 12 23:41:34 2005
+++ Zope/lib/python/nt_svcutils/service.py	Wed Apr 13 21:47:48 2005
@@ -93,24 +93,35 @@
 
     def logmsg(self, event):
         # log a service event using servicemanager.LogMsg
-        from servicemanager import LogMsg, EVENTLOG_INFORMATION_TYPE
-        LogMsg(EVENTLOG_INFORMATION_TYPE, event,
-               (self._svc_name_, " (%s)" % self._svc_display_name_))
+        try:
+            servicemanager.LogMsg(servicemanager.EVENTLOG_INFORMATION_TYPE,
+                                  event,
+                                  (self._svc_name_,
+                                   " (%s)" % self._svc_display_name_))
+        except win32api.error, details:
+            # Failed to write a log entry - most likely problem is
+            # that the event log is full.  We don't want this to kill us
+            print "FAILED to write INFO event", event, ":", details
+
+    def _dolog(self, func, msg):
+        try:
+            fullmsg = "%s (%s): %s" % \
+                      (self._svc_name_, self._svc_display_name_, msg)
+            func(fullmsg)
+        except win32api.error, details:
+            # Failed to write a log entry - most likely problem is
+            # that the event log is full.  We don't want this to kill us
+            print "FAILED to write event log entry:", details
+            print msg
 
     def info(self, s):
-        from servicemanager import LogInfoMsg
-        LogInfoMsg("%s (%s): %s" %
-                   (self._svc_name_, self._svc_display_name_, s))
+        self._dolog(servicemanager.LogInfoMsg, s)
 
     def warning(self, s):
-        from servicemanager import LogWarningMsg
-        LogWarningMsg("%s (%s): %s" %
-                      (self._svc_name_, self._svc_display_name_, s))
+        self._dolog(servicemanager.LogWarningMsg, s)
 
     def error(self, s):
-        from servicemanager import LogErrorMsg
-        LogErrorMsg("%s (%s): %s" %
-                    (self._svc_name_, self._svc_display_name_, s))
+        self._dolog(servicemanager.LogErrorMsg, s)
 
     def SvcDoRun(self):
         # indicate to Zope that the process is daemon managed (restartable)



More information about the Zope-Checkins mailing list