[Zope3-checkins] SVN: Zope3/trunk/src/ - move the accesslog configuration out of ZConfig

Fred L. Drake, Jr. fred at zope.com
Tue Jun 22 11:17:16 EDT 2004


Log message for revision 25935:
- move the accesslog configuration out of ZConfig
- remove the <hitlog> configuration section; use <accesslog> instead



-=-
Modified: Zope3/trunk/src/ZConfig/components/logger/component.xml
===================================================================
--- Zope3/trunk/src/ZConfig/components/logger/component.xml	2004-06-22 13:22:36 UTC (rev 25934)
+++ Zope3/trunk/src/ZConfig/components/logger/component.xml	2004-06-22 15:15:07 UTC (rev 25935)
@@ -6,6 +6,5 @@
   <import package="ZConfig.components.logger" file="handlers.xml"/>
   <import package="ZConfig.components.logger" file="logger.xml"/>
   <import package="ZConfig.components.logger" file="eventlog.xml"/>
-  <import package="ZConfig.components.logger" file="hitlog.xml"/>
 
 </component>

Deleted: Zope3/trunk/src/ZConfig/components/logger/hitlog.xml
===================================================================
--- Zope3/trunk/src/ZConfig/components/logger/hitlog.xml	2004-06-22 13:22:36 UTC (rev 25934)
+++ Zope3/trunk/src/ZConfig/components/logger/hitlog.xml	2004-06-22 15:15:07 UTC (rev 25935)
@@ -1,34 +0,0 @@
-<component prefix="ZConfig.components.logger.logger">
-
-  <import package="ZConfig.components.logger" file="abstract.xml"/>
-  <import package="ZConfig.components.logger" file="base-logger.xml"/>
-
-  <abstracttype name="ZConfig.logger.accesslog"/>
-
-  <sectiontype name="accesslog"
-               datatype=".AccessLogFactory"
-               extends="ZConfig.logger.base-logger"
-               implements="ZConfig.logger.accesslog">
-    <description>
-      Configuration for the access logger.
-
-      Note that the setting of verbosity level and message formats are not
-      used.
-    </description>
-  </sectiontype>
-
-  <sectiontype name="hitlog"
-               datatype=".HitLogFactory"
-               extends="ZConfig.logger.base-logger"
-               implements="ZConfig.logger.accesslog">
-    <description>
-      DEPRECATED.  Use "accesslog" instead.
-
-      Configuration for the access logger.
-
-      Note that the setting of verbosity level and message formats are not
-      used.
-    </description>
-  </sectiontype>
-
-</component>

Modified: Zope3/trunk/src/ZConfig/components/logger/logger.py
===================================================================
--- Zope3/trunk/src/ZConfig/components/logger/logger.py	2004-06-22 13:22:36 UTC (rev 25934)
+++ Zope3/trunk/src/ZConfig/components/logger/logger.py	2004-06-22 15:15:07 UTC (rev 25935)
@@ -87,31 +87,6 @@
     name = None
 
 
-class AccessLogFactory(LoggerFactoryBase):
-    """Logger factory that returns the access logger."""
-
-    name = "accesslog"
-
-    def create(self):
-        logger = LoggerFactoryBase.create(self)
-        logger.setLevel(logging.INFO)
-        logger.propagate = False
-        formatter = logging.Formatter()
-        for handler in logger.handlers:
-            handler.setFormatter(formatter)
-        return logger
-
-
-class HitLogFactory(AccessLogFactory):
-    """AccessLogFactory that generates a deprecation warning."""
-
-    def create(self):
-        import warnings
-        warnings.warn("<hitlog> is deprecated; use <accesslog> instead",
-                      DeprecationWarning)
-        return AccessLogFactory.create(self)
-
-
 class LoggerFactory(LoggerFactoryBase):
     """Logger factory that returns the named logger."""
 

Modified: Zope3/trunk/src/ZConfig/components/logger/tests/test_logger.py
===================================================================
--- Zope3/trunk/src/ZConfig/components/logger/tests/test_logger.py	2004-06-22 13:22:36 UTC (rev 25934)
+++ Zope3/trunk/src/ZConfig/components/logger/tests/test_logger.py	2004-06-22 15:15:07 UTC (rev 25935)
@@ -226,59 +226,8 @@
         return logger
 
 
-class TestAccessLogging(LoggingTestBase):
-
-    name = "accesslog"
-
-    _schematext = """
-      <schema>
-        <import package='ZConfig.components.logger'/>
-        <section type='accesslog' name='*' attribute='accesslog'/>
-      </schema>
-    """
-
-    def test_config_without_logger(self):
-        conf = self.get_config("")
-        self.assert_(conf.accesslog is None)
-
-    def test_config_without_handlers(self):
-        logger = self.check_simple_logger("<accesslog/>")
-        # Make sure there's a NullHandler, since a warning gets
-        # printed if there are no handlers:
-        self.assertEqual(len(logger.handlers), 1)
-        self.assert_(isinstance(logger.handlers[0],
-                                loghandler.NullHandler))
-
-    def test_formatter(self):
-        logger = self.check_simple_logger("<accesslog>\n"
-                                          "  <syslog>\n"
-                                          "    level error\n"
-                                          "    facility local3\n"
-                                          "    format xyzzy\n"
-                                          "  </syslog>\n"
-                                          "</accesslog>")
-        self.assertEqual(len(logger.handlers), 1)
-        syslog = logger.handlers[0]
-        self.assertEqual(syslog.level, logging.ERROR)
-        self.assert_(isinstance(syslog, loghandler.SysLogHandler))
-        self.assertEqual(syslog.formatter._fmt, "%(message)s")
-
-    def check_simple_logger(self, text):
-        conf = self.get_config(text)
-        self.assert_(conf.accesslog is not None)
-        logger = conf.accesslog()
-        self.assert_(isinstance(logger, logging.Logger))
-        self.assert_(not logger.propagate)
-        self.assertEquals(logger.name, "accesslog")
-        self.assertEquals(logger.level, logging.INFO)
-        return logger
-
-
 def test_suite():
-    suite = unittest.TestSuite()
-    suite.addTest(unittest.makeSuite(TestConfig))
-    suite.addTest(unittest.makeSuite(TestAccessLogging))
-    return suite
+    return unittest.makeSuite(TestConfig)
 
 if __name__ == '__main__':
     unittest.main(defaultTest="test_suite")

Added: Zope3/trunk/src/zope/app/server/accesslog.py
===================================================================
--- Zope3/trunk/src/zope/app/server/accesslog.py	2004-06-22 13:22:36 UTC (rev 25934)
+++ Zope3/trunk/src/zope/app/server/accesslog.py	2004-06-22 15:15:07 UTC (rev 25935)
@@ -0,0 +1,38 @@
+##############################################################################
+#
+# Copyright (c) 2004 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Configuration support for the access log.
+
+This assumes that access logging is being performed through the logger
+object returned by logging.getLogger('accesslog').
+
+$Id$
+"""
+import logging
+
+from ZConfig.components.logger.logger import LoggerFactoryBase
+
+
+class AccessLogFactory(LoggerFactoryBase):
+    """Logger factory that returns the access logger."""
+
+    name = "accesslog"
+
+    def create(self):
+        logger = LoggerFactoryBase.create(self)
+        logger.setLevel(logging.INFO)
+        logger.propagate = False
+        formatter = logging.Formatter()
+        for handler in logger.handlers:
+            handler.setFormatter(formatter)
+        return logger


Property changes on: Zope3/trunk/src/zope/app/server/accesslog.py
___________________________________________________________________
Name: svn:mime-type
   + text/x-python
Name: svn:eol-style
   + native

Added: Zope3/trunk/src/zope/app/server/accesslog.xml
===================================================================
--- Zope3/trunk/src/zope/app/server/accesslog.xml	2004-06-22 13:22:36 UTC (rev 25934)
+++ Zope3/trunk/src/zope/app/server/accesslog.xml	2004-06-22 15:15:07 UTC (rev 25935)
@@ -0,0 +1,17 @@
+<component>
+
+  <import package="ZConfig.components.logger" file="handlers.xml"/>
+  <import package="ZConfig.components.logger" file="logger.xml"/>
+
+  <sectiontype name="accesslog"
+               datatype="zope.app.server.accesslog.AccessLogFactory"
+               extends="ZConfig.logger.base-logger">
+    <description>
+      Configuration for the access logger.
+
+      Note that the setting of verbosity level and message formats are not
+      used.  All logging is done using the Common Log Format.
+    </description>
+  </sectiontype>
+
+</component>

Modified: Zope3/trunk/src/zope/app/server/schema.xml
===================================================================
--- Zope3/trunk/src/zope/app/server/schema.xml	2004-06-22 13:22:36 UTC (rev 25934)
+++ Zope3/trunk/src/zope/app/server/schema.xml	2004-06-22 15:15:07 UTC (rev 25935)
@@ -11,6 +11,7 @@
 
   <!-- logging configuration -->
   <import package="ZConfig.components.logger" />
+  <import package="zope.app.server" file="accesslog.xml" />
 
   <sectiontype name="server" datatype="zope.app.server.server.ServerFactory">
     <key name="type" required="yes" />
@@ -31,7 +32,7 @@
     </description>
   </section>
 
-  <section type="ZConfig.logger.accesslog" attribute="accesslog" name="*"
+  <section type="accesslog" attribute="accesslog" name="*"
            required="yes">
     <description>
       Configuration for the access log.

Added: Zope3/trunk/src/zope/app/server/tests/test_accesslog.py
===================================================================
--- Zope3/trunk/src/zope/app/server/tests/test_accesslog.py	2004-06-22 13:22:36 UTC (rev 25934)
+++ Zope3/trunk/src/zope/app/server/tests/test_accesslog.py	2004-06-22 15:15:07 UTC (rev 25935)
@@ -0,0 +1,74 @@
+##############################################################################
+#
+# Copyright (c) 2004 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Tests for zope.app.server.accesslog.
+
+$Id$
+"""
+import logging
+import unittest
+
+from ZConfig.components.logger import loghandler
+from ZConfig.components.logger.tests import test_logger
+
+
+class TestAccessLogging(test_logger.LoggingTestBase):
+
+    name = "accesslog"
+
+    _schematext = """
+      <schema>
+        <import package='zope.app.server' file='accesslog.xml'/>
+        <section type='accesslog' name='*' attribute='accesslog'/>
+      </schema>
+    """
+
+    def test_config_without_logger(self):
+        conf = self.get_config("")
+        self.assert_(conf.accesslog is None)
+
+    def test_config_without_handlers(self):
+        logger = self.check_simple_logger("<accesslog/>")
+        # Make sure there's a NullHandler, since a warning gets
+        # printed if there are no handlers:
+        self.assertEqual(len(logger.handlers), 1)
+        self.assert_(isinstance(logger.handlers[0],
+                                loghandler.NullHandler))
+
+    def test_formatter(self):
+        logger = self.check_simple_logger("<accesslog>\n"
+                                          "  <syslog>\n"
+                                          "    level error\n"
+                                          "    facility local3\n"
+                                          "    format xyzzy\n"
+                                          "  </syslog>\n"
+                                          "</accesslog>")
+        self.assertEqual(len(logger.handlers), 1)
+        syslog = logger.handlers[0]
+        self.assertEqual(syslog.level, logging.ERROR)
+        self.assert_(isinstance(syslog, loghandler.SysLogHandler))
+        self.assertEqual(syslog.formatter._fmt, "%(message)s")
+
+    def check_simple_logger(self, text):
+        conf = self.get_config(text)
+        self.assert_(conf.accesslog is not None)
+        logger = conf.accesslog()
+        self.assert_(isinstance(logger, logging.Logger))
+        self.assert_(not logger.propagate)
+        self.assertEquals(logger.name, "accesslog")
+        self.assertEquals(logger.level, logging.INFO)
+        return logger
+
+
+def test_suite():
+    return unittest.makeSuite(TestAccessLogging)


Property changes on: Zope3/trunk/src/zope/app/server/tests/test_accesslog.py
___________________________________________________________________
Name: svn:mime-type
   + text/x-python
Name: svn:eol-style
   + native




More information about the Zope3-Checkins mailing list