diff options
Diffstat (limited to 'Mailman/Logging/Syslog.py')
| -rw-r--r-- | Mailman/Logging/Syslog.py | 76 |
1 files changed, 0 insertions, 76 deletions
diff --git a/Mailman/Logging/Syslog.py b/Mailman/Logging/Syslog.py deleted file mode 100644 index 531ab1d7b..000000000 --- a/Mailman/Logging/Syslog.py +++ /dev/null @@ -1,76 +0,0 @@ -# Copyright (C) 1998-2005 by the Free Software Foundation, Inc. -# -# 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; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, -# USA. - -"""Central logging class for the Mailman system. - -This might eventually be replaced by a syslog based logger, hence the name. -""" - -import quopri - -from Mailman.Logging.StampedLogger import StampedLogger - - - -# Global, shared logger instance. All clients should use this object. -syslog = None - - - -# Don't instantiate except below. -class _Syslog: - def __init__(self): - self._logfiles = {} - - def __del__(self): - self.close() - - def write(self, kind, msg, *args, **kws): - self.write_ex(kind, msg, args, kws) - - # We need this because SMTPDirect tries to pass in a special dict-like - # object, which is not a concrete dictionary. This is not allowed by - # Python's extended call syntax. :( - def write_ex(self, kind, msg, args=None, kws=None): - origmsg = msg - logf = self._logfiles.get(kind) - if not logf: - logf = self._logfiles[kind] = StampedLogger(kind) - try: - if args: - msg %= args - if kws: - msg %= kws - # It's really bad if exceptions in the syslogger cause other crashes - except Exception, e: - msg = 'Bad format "%s": %s: %s' % (origmsg, repr(e), e) - try: - logf.write(msg + '\n') - except UnicodeError: - # Python 2.4 may fail to write 8bit (non-ascii) characters - logf.write(quopri.encodestring(msg) + '\n') - - # For the ultimate in convenience - __call__ = write - - def close(self): - for kind, logger in self._logfiles.items(): - logger.close() - self._logfiles.clear() - - -syslog = _Syslog() |
