[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