[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnue] r9759 - trunk/gnue-common/src/base
From: |
reinhard |
Subject: |
[gnue] r9759 - trunk/gnue-common/src/base |
Date: |
Fri, 13 Jul 2007 17:22:53 -0500 (CDT) |
Author: reinhard
Date: 2007-07-13 17:22:52 -0500 (Fri, 13 Jul 2007)
New Revision: 9759
Added:
trunk/gnue-common/src/base/utils.py
Modified:
trunk/gnue-common/src/base/log.py
Log:
Allow for logging configuration files.
issue123 in-progress
Modified: trunk/gnue-common/src/base/log.py
===================================================================
--- trunk/gnue-common/src/base/log.py 2007-07-12 23:08:03 UTC (rev 9758)
+++ trunk/gnue-common/src/base/log.py 2007-07-13 22:22:52 UTC (rev 9759)
@@ -25,24 +25,29 @@
# pylint: disable-msg=W0142
"""
-The logging module extends the standard logging module with some convenience
+The log module extends the standard logging module with some convenience
functions related to the logging schema used in GNU Enterprise.
"""
import inspect
import logging
+import logging.config
+from gnue.common.base import utils
+
__all__ = ['debug', 'info', 'warning', 'deprecated', 'error', 'critical',
'exception', 'debug_n', 'info_n', 'warning_n', 'deprecated_n',
'error_n', 'critical_n', 'exception_n']
-
# TODO:
-# - Read debug config
# - function for enter() and leave(), maybe as decorator?
# - function to declare function as deprecated, maybe as decorator?
# - Exception hook
+# - allow for __gnue_logger__ module global variable to use as a logger name
+# instead of the module name (make a function in utils.py to search and cache
+# module global variables in the module hierarchy)
+
# -----------------------------------------------------------------------------
# Log to the logger named after the calling module
# -----------------------------------------------------------------------------
@@ -229,6 +234,7 @@
frame = frame.f_back
return ("(unknown file)", 0, "(unknown function)")
+
# -----------------------------------------------------------------------------
# Module initialization
# -----------------------------------------------------------------------------
@@ -236,8 +242,13 @@
# Use our own Logger class.
logging.setLoggerClass(Logger)
-# Configure logging to a very basic default behaviour to start with.
-logging.basicConfig(level=10)
-
# Add level for deprecation warnings.
logging.addLevelName(31, 'DEPRECATED')
+
+# Configure logging through configuration files, or use standard configuration
+# if no configuration files available.
+_CONFIG_FILES = utils.config_files('log')
+if _CONFIG_FILES:
+ logging.config.fileConfig(_CONFIG_FILES)
+else:
+ logging.basicConfig()
Added: trunk/gnue-common/src/base/utils.py
===================================================================
--- trunk/gnue-common/src/base/utils.py 2007-07-12 23:08:03 UTC (rev 9758)
+++ trunk/gnue-common/src/base/utils.py 2007-07-13 22:22:52 UTC (rev 9759)
@@ -0,0 +1,73 @@
+# GNU Enterprise Common Library - Basic Utilities
+#
+# Copyright 2001-2007 Free Software Foundation
+#
+# This file is part of GNU Enterprise
+#
+# GNU Enterprise is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public
+# License as published by the Free Software Foundation; either
+# version 2, or (at your option) any later version.
+#
+# GNU Enterprise is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied
+# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+# PURPOSE. See the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public
+# License along with program; see the file COPYING. If not,
+# write to the Free Software Foundation, Inc., 59 Temple Place
+# - Suite 330, Boston, MA 02111-1307, USA.
+#
+# $Id$
+
+"""
+The utils module provides some very basic although GNU Enterprise specific
+utility functions.
+"""
+
+import os.path
+
+from gnue import paths
+
+__all__ = ['config_files']
+
+
+# -----------------------------------------------------------------------------
+# Return a list of config files to use
+# -----------------------------------------------------------------------------
+
+def config_files(name):
+ """
+ Return a list of filenames to parse for a specific configuration file.
+
+ The list contains all existing config files in the following order of
+ directories searched:
+ 1. system configuration (usually /etc/gnue/*.conf)
+ 2. user configuration (~/.gnue/*.conf)
+ 3. local configuration (etc/*.conf)
+ 4. environment variable location ($GNUE_*)
+ 5. fixed system configuration (/etc/gnue/*.conf.fixed)
+ The practical use for 4. is to define configuration entries that cannot be
+ overwritten by normal users.
+
+ For example, if name is C{connections}, on a standard install on a POSIX
+ system, the file would be searched in:
+ 1. C{/etc/gnue/connections.conf}
+ 2. C{~/.gnue/connections.conf}
+ 3. C{etc/connections.conf} (from the current directory)
+ 4. the content of the C{GNUE_CONNECTIONS} environment variable
+ 5. C{/etc/gnue/connections.conf.fixed}
+
+ @param name: name of the configuration file without the .conf ending
+ @return: list of full path names of configuration files to parse
+ """
+ files = []
+ files.append(os.path.join(paths.config, name + '.conf'))
+ if os.environ.has_key('HOME'):
+ files.append(os.path.join(os.environ['HOME'], name + '.conf'))
+ if os.environ.has_key('GNUE_' + name.upper()):
+ files.append(os.environ['GNUE_' + name.upper()])
+ files.append(os.path.join('etc', name + '.conf'))
+ files.append(os.path.join(paths.config, name + '.conf.fixed'))
+ return [f for f in files if os.path.isfile(f)]
Property changes on: trunk/gnue-common/src/base/utils.py
___________________________________________________________________
Name: svn:keywords
+ Id
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnue] r9759 - trunk/gnue-common/src/base,
reinhard <=