[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