diff options
| author | bwarsaw | 2006-04-17 04:08:17 +0000 |
|---|---|---|
| committer | bwarsaw | 2006-04-17 04:08:17 +0000 |
| commit | 0ed815a216c7bb6f820cfdf99fc8d31bcfd19fc0 (patch) | |
| tree | 7b710a785331abfe28b5b46a7695e6cbd81b7794 /Mailman/Logging/Logger.py | |
| parent | 9934c9b2b0e76a0b77b7869ecf68cd960d4d5bd7 (diff) | |
| download | mailman-0ed815a216c7bb6f820cfdf99fc8d31bcfd19fc0.tar.gz mailman-0ed815a216c7bb6f820cfdf99fc8d31bcfd19fc0.tar.zst mailman-0ed815a216c7bb6f820cfdf99fc8d31bcfd19fc0.zip | |
Diffstat (limited to 'Mailman/Logging/Logger.py')
| -rw-r--r-- | Mailman/Logging/Logger.py | 104 |
1 files changed, 0 insertions, 104 deletions
diff --git a/Mailman/Logging/Logger.py b/Mailman/Logging/Logger.py deleted file mode 100644 index 617347d49..000000000 --- a/Mailman/Logging/Logger.py +++ /dev/null @@ -1,104 +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. - -"""File-based logger, writes to named category files in mm_cfg.LOG_DIR.""" - -import sys -import os -import codecs -from types import StringType - -from Mailman import mm_cfg -from Mailman.Logging.Utils import _logexc - -# Set this to the encoding to be used for your log file output. If set to -# None, then it uses your system's default encoding. Otherwise, it must be an -# encoding string appropriate for codecs.open(). -LOG_ENCODING = 'iso-8859-1' - - - -class Logger: - def __init__(self, category, nofail=1, immediate=0): - """nofail says to fallback to sys.__stderr__ if write fails to - category file - a complaint message is emitted, but no exception is - raised. Set nofail=0 if you want to handle the error in your code, - instead. - - immediate=1 says to create the log file on instantiation. - Otherwise, the file is created only when there are writes pending. - """ - self.__filename = os.path.join(mm_cfg.LOG_DIR, category) - self.__fp = None - self.__nofail = nofail - self.__encoding = LOG_ENCODING or sys.getdefaultencoding() - if immediate: - self.__get_f() - - def __del__(self): - self.close() - - def __repr__(self): - return '<%s to %s>' % (self.__class__.__name__, `self.__filename`) - - def __get_f(self): - if self.__fp: - return self.__fp - else: - try: - ou = os.umask(002) - try: - try: - f = codecs.open( - self.__filename, 'a+', self.__encoding, 'replace', - 1) - except LookupError: - f = open(self.__filename, 'a+', 1) - self.__fp = f - finally: - os.umask(ou) - except IOError, e: - if self.__nofail: - _logexc(self, e) - f = self.__fp = sys.__stderr__ - else: - raise - return f - - def flush(self): - f = self.__get_f() - if hasattr(f, 'flush'): - f.flush() - - def write(self, msg): - if isinstance(msg, StringType): - msg = unicode(msg, self.__encoding, 'replace') - f = self.__get_f() - try: - f.write(msg) - except IOError, msg: - _logexc(self, msg) - - def writelines(self, lines): - for l in lines: - self.write(l) - - def close(self): - if not self.__fp: - return - self.__get_f().close() - self.__fp = None |
