[Checkins] SVN: zc.loggermonitor/branches/dev/ Initial implementation.

Jim Fulton jim at zope.com
Fri Feb 20 14:13:56 EST 2009


Log message for revision 96848:
  Initial implementation.
  

Changed:
  D   zc.loggermonitor/branches/dev/README.txt
  U   zc.loggermonitor/branches/dev/buildout.cfg
  U   zc.loggermonitor/branches/dev/setup.py
  A   zc.loggermonitor/branches/dev/src/zc/loggermonitor/
  A   zc.loggermonitor/branches/dev/src/zc/loggermonitor/README.txt
  A   zc.loggermonitor/branches/dev/src/zc/loggermonitor/__init__.py
  A   zc.loggermonitor/branches/dev/src/zc/loggermonitor/configure.zcml
  A   zc.loggermonitor/branches/dev/src/zc/loggermonitor/tests.py

-=-
Deleted: zc.loggermonitor/branches/dev/README.txt
===================================================================
--- zc.loggermonitor/branches/dev/README.txt	2009-02-20 19:10:14 UTC (rev 96847)
+++ zc.loggermonitor/branches/dev/README.txt	2009-02-20 19:13:55 UTC (rev 96848)
@@ -1,11 +0,0 @@
-***********************
-Title Here
-***********************
-
-Changes
-*******
-
-0.1 (yyyy-mm-dd)
-================
-
-Initial release

Modified: zc.loggermonitor/branches/dev/buildout.cfg
===================================================================
--- zc.loggermonitor/branches/dev/buildout.cfg	2009-02-20 19:10:14 UTC (rev 96847)
+++ zc.loggermonitor/branches/dev/buildout.cfg	2009-02-20 19:13:55 UTC (rev 96848)
@@ -4,7 +4,7 @@
 
 [test]
 recipe = zc.recipe.testrunner
-eggs = 
+eggs = zc.loggermonitor
 
 [py]
 recipe = zc.recipe.egg

Modified: zc.loggermonitor/branches/dev/setup.py
===================================================================
--- zc.loggermonitor/branches/dev/setup.py	2009-02-20 19:10:14 UTC (rev 96847)
+++ zc.loggermonitor/branches/dev/setup.py	2009-02-20 19:13:55 UTC (rev 96848)
@@ -12,7 +12,7 @@
 #
 ##############################################################################
 
-name, version = '', '0'
+name, version = 'zc.loggermonitor', '0'
 
 import os
 from setuptools import setup, find_packages
@@ -25,7 +25,7 @@
                              )).read()
 
 long_description = (
-        read('src/zc/?/README.txt')
+        read('src/%s/README.txt' % '/'.join(name.split('.')))
         + '\n' +
         'Download\n'
         '--------\n'
@@ -39,7 +39,7 @@
     description = '',
     long_description=long_description,
     license = 'ZPL 2.1',
-    
+
     include_package_data = True,
     packages = find_packages('src'),
     namespace_packages = ['zc'],
@@ -47,5 +47,4 @@
     install_requires = ['setuptools'],
     zip_safe = False,
     entry_points=entry_points,
-    include_package_data = True,
     )

Added: zc.loggermonitor/branches/dev/src/zc/loggermonitor/README.txt
===================================================================
--- zc.loggermonitor/branches/dev/src/zc/loggermonitor/README.txt	                        (rev 0)
+++ zc.loggermonitor/branches/dev/src/zc/loggermonitor/README.txt	2009-02-20 19:13:55 UTC (rev 96848)
@@ -0,0 +1,56 @@
+Logger Monitor
+==============
+
+The zc.loggermonitor package provides a zc.monitor plugin for getting
+and setting logger levels.
+
+    >>> import sys, zc.loggermonitor
+
+It is an error to call the monitor without user arguments.
+
+    >>> zc.loggermonitor.level(sys.stdout)
+    Traceback (most recent call last):
+    ...
+    TypeError: level() takes at least 2 arguments (1 given)
+
+If you pass it a logger name, it returns the current effective level:
+
+    >>> zc.loggermonitor.level(sys.stdout, '.')
+    NOTSET
+    >>> zc.loggermonitor.level(sys.stdout, 'mylogger')
+    NOTSET
+
+If you pass a level it sets the level:
+
+    >>> zc.loggermonitor.level(sys.stdout, '.', 'INFO')
+
+    >>> zc.loggermonitor.level(sys.stdout, '.')
+    INFO
+    >>> zc.loggermonitor.level(sys.stdout, 'mylogger')
+    INFO
+
+You can also pass a numeric value:
+
+    >>> zc.loggermonitor.level(sys.stdout, 'mylogger', '5')
+    >>> zc.loggermonitor.level(sys.stdout, '.')
+    INFO
+    >>> zc.loggermonitor.level(sys.stdout, 'mylogger')
+    Level 5
+
+    >>> zc.loggermonitor.level(sys.stdout, 'mylogger', '10')
+    >>> zc.loggermonitor.level(sys.stdout, '.')
+    INFO
+    >>> zc.loggermonitor.level(sys.stdout, 'mylogger')
+    DEBUG
+
+    >>> zc.loggermonitor.level(sys.stdout, 'mylogger', 'NOTSET')
+    >>> zc.loggermonitor.level(sys.stdout, '.')
+    INFO
+    >>> zc.loggermonitor.level(sys.stdout, 'mylogger')
+    INFO
+
+    >>> zc.loggermonitor.level(sys.stdout, '.', 'NOTSET')
+    >>> zc.loggermonitor.level(sys.stdout, '.')
+    NOTSET
+    >>> zc.loggermonitor.level(sys.stdout, 'mylogger')
+    NOTSET


Property changes on: zc.loggermonitor/branches/dev/src/zc/loggermonitor/README.txt
___________________________________________________________________
Added: svn:eol-style
   + native

Added: zc.loggermonitor/branches/dev/src/zc/loggermonitor/__init__.py
===================================================================
--- zc.loggermonitor/branches/dev/src/zc/loggermonitor/__init__.py	                        (rev 0)
+++ zc.loggermonitor/branches/dev/src/zc/loggermonitor/__init__.py	2009-02-20 19:13:55 UTC (rev 96848)
@@ -0,0 +1,43 @@
+##############################################################################
+#
+# Copyright (c) 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.
+#
+##############################################################################
+
+import logging
+
+def level(connection, logger, level=None):
+    """Get or set a log level
+
+    Provide a logger name to get the current level.
+    Provide a logger name and a ner level to set the level.
+    """
+
+    if logger == '.':
+        logger = logging.getLogger()
+    else:
+        logger = logging.getLogger(logger)
+
+    if level is None:
+        level = logger.getEffectiveLevel()
+        connection.write(logging.getLevelName(level)+'\n')
+        return
+
+    try:
+        level = int(level)
+    except ValueError:
+        v = getattr(logging, level, None)
+        if not isinstance(v, int) or v < 0:
+            raise ValueError("Invalid log level", level)
+        level = v
+
+    logger.setLevel(level)
+    


Property changes on: zc.loggermonitor/branches/dev/src/zc/loggermonitor/__init__.py
___________________________________________________________________
Added: svn:keywords
   + Id
Added: svn:eol-style
   + native

Added: zc.loggermonitor/branches/dev/src/zc/loggermonitor/configure.zcml
===================================================================
--- zc.loggermonitor/branches/dev/src/zc/loggermonitor/configure.zcml	                        (rev 0)
+++ zc.loggermonitor/branches/dev/src/zc/loggermonitor/configure.zcml	2009-02-20 19:13:55 UTC (rev 96848)
@@ -0,0 +1,5 @@
+<utility
+   component=".level"
+   provides="zc.monitor.interfaces.IMonitorPlugin"
+   name="loglevel"
+   />


Property changes on: zc.loggermonitor/branches/dev/src/zc/loggermonitor/configure.zcml
___________________________________________________________________
Added: svn:eol-style
   + native

Added: zc.loggermonitor/branches/dev/src/zc/loggermonitor/tests.py
===================================================================
--- zc.loggermonitor/branches/dev/src/zc/loggermonitor/tests.py	                        (rev 0)
+++ zc.loggermonitor/branches/dev/src/zc/loggermonitor/tests.py	2009-02-20 19:13:55 UTC (rev 96848)
@@ -0,0 +1,31 @@
+##############################################################################
+#
+# Copyright (c) 2004 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.0 (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.
+#
+##############################################################################
+from zope.testing import doctest
+import logging
+import unittest
+import zope.testing.setupstack
+
+def setUp(test):
+    logger = logging.getLogger()
+    oldlevel = logger.getEffectiveLevel()
+    zope.testing.setupstack.register(test, logger.setLevel, oldlevel)
+    logger.setLevel(logging.NOTSET)
+
+def test_suite():
+    return unittest.TestSuite((
+        doctest.DocFileSuite(
+            'README.txt',
+            setUp=setUp, tearDown=zope.testing.setupstack.tearDown),
+        ))
+


Property changes on: zc.loggermonitor/branches/dev/src/zc/loggermonitor/tests.py
___________________________________________________________________
Added: svn:keywords
   + Id
Added: svn:eol-style
   + native



More information about the Checkins mailing list