+++ /dev/null
-# -*- coding: utf-8 -*-
-## GroupUserFolder
-## Copyright (C)2006 Ingeniweb
-
-## This program 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 of the License, or
-## (at your option) any later version.
-
-## This program 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 this program; see the file COPYING. If not, write to the
-## Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-"""
-One can override the following variables :
-
-LOG_LEVEL : The log level, from 0 to 5.
-A Log level n implies all logs from 0 to n.
-LOG_LEVEL MUST BE OVERRIDEN !!!!!
-
-
-LOG_NONE = 0 => No log output
-LOG_CRITICAL = 1 => Critical problems (data consistency, module integrity, ...)
-LOG_ERROR = 2 => Error (runtime exceptions, ...)
-LOG_WARNING = 3 => Warning (non-blocking exceptions, ...)
-LOG_NOTICE = 4 => Notices (Special conditions, ...)
-LOG_DEBUG = 5 => Debug (Debugging information)
-
-
-LOG_PROCESSOR : A dictionnary holding, for each key, the data processor.
-A data processor is a function that takes only one parameter : the data to print.
-Default : LogFile for all keys.
-"""
-__version__ = "$Revision: $"
-# $Source: $
-# $Id: Log.py 33389 2006-11-11 11:24:41Z shh42 $
-__docformat__ = 'restructuredtext'
-
-
-
-LOG_LEVEL = -1
-
-LOG_NONE = 0
-LOG_CRITICAL = 1
-LOG_ERROR = 2
-LOG_WARNING = 3
-LOG_NOTICE = 4
-LOG_DEBUG = 5
-
-from sys import stdout, stderr, exc_info
-import time
-import thread
-import threading
-import traceback
-import os
-import pprint
-import string
-
-LOG_STACK_DEPTH = [-2]
-
-def Log(level, *args):
- """
- Log(level, *args) => Pretty-prints data on the console with additional information.
- """
- if LOG_LEVEL and level <= LOG_LEVEL:
- if not level in LOG_PROCESSOR.keys():
- raise ValueError, "Invalid log level :", level
-
- stack = ""
- stackItems = traceback.extract_stack()
- for depth in LOG_STACK_DEPTH:
- stackItem = stackItems[depth]
- stack = "%s%s:%s:" % (stack, os.path.basename(stackItem[0]), stackItem[1],)
- pr = "%8s %s%s: " % (
- LOG_LABEL[level],
- stack,
- time.ctime(time.time()),
- )
- for data in args:
- try:
- if "\n" in data:
- data = data
- else:
- data = pprint.pformat(data)
- except:
- data = pprint.pformat(data)
- pr = pr + data + " "
-
- LOG_PROCESSOR[level](level, LOG_LABEL[level], pr, )
-
-def LogCallStack(level, *args):
- """
- LogCallStack(level, *args) => View the whole call stack for the specified call
- """
- if LOG_LEVEL and level <= LOG_LEVEL:
- if not level in LOG_PROCESSOR.keys():
- raise ValueError, "Invalid log level :", level
-
- stack = string.join(traceback.format_list(traceback.extract_stack()[:-1]))
- pr = "%8s %s:\n%s\n" % (
- LOG_LABEL[level],
- time.ctime(time.time()),
- stack
- )
- for data in args:
- try:
- if "\n" in data:
- data = data
- else:
- data = pprint.pformat(data)
- except:
- data = pprint.pformat(data)
- pr = pr + data + " "
-
- LOG_PROCESSOR[level](level, LOG_LABEL[level], pr, )
-
-
-
-def FormatStack(stack):
- """
- FormatStack(stack) => string
-
- Return a 'loggable' version of the stack trace
- """
- ret = ""
- for s in stack:
- ret = ret + "%s:%s:%s: %s\n" % (os.path.basename(s[0]), s[1], s[2], s[3])
- return ret
-
-
-def LogException():
- """
- LogException () => None
-
- Print an exception information on the console
- """
- Log(LOG_NOTICE, "EXCEPTION >>>")
- traceback.print_exc(file = LOG_OUTPUT)
- Log(LOG_NOTICE, "<<< EXCEPTION")
-
-
-LOG_OUTPUT = stderr
-def LogFile(level, label, data, ):
- """
- LogFile : writes data to the LOG_OUTPUT file.
- """
- LOG_OUTPUT.write(data+'\n')
- LOG_OUTPUT.flush()
-
-
-import logging
-
-CUSTOM_TRACE = 5
-logging.addLevelName('TRACE', CUSTOM_TRACE)
-
-zLogLevelConverter = {
- LOG_NONE: CUSTOM_TRACE,
- LOG_CRITICAL: logging.CRITICAL,
- LOG_ERROR: logging.ERROR,
- LOG_WARNING: logging.WARNING,
- LOG_NOTICE: logging.INFO,
- LOG_DEBUG: logging.DEBUG,
- }
-
-def LogzLog(level, label, data, ):
- """
- LogzLog : writes data though Zope's logging facility
- """
- logger = logging.getLogger('GroupUserFolder')
- logger.log(zLogLevelConverter[level], data + "\n", )
-
-
-
-LOG_PROCESSOR = {
- LOG_NONE: LogzLog,
- LOG_CRITICAL: LogzLog,
- LOG_ERROR: LogzLog,
- LOG_WARNING: LogzLog,
- LOG_NOTICE: LogzLog,
- LOG_DEBUG: LogFile,
- }
-
-
-LOG_LABEL = {
- LOG_NONE: "",
- LOG_CRITICAL: "CRITICAL",
- LOG_ERROR: "ERROR ",
- LOG_WARNING: "WARNING ",
- LOG_NOTICE: "NOTICE ",
- LOG_DEBUG: "DEBUG ",
- }