summaryrefslogtreecommitdiff
path: root/Mailman/Logging/Logger.py
diff options
context:
space:
mode:
authorbwarsaw2006-04-17 04:08:17 +0000
committerbwarsaw2006-04-17 04:08:17 +0000
commit0ed815a216c7bb6f820cfdf99fc8d31bcfd19fc0 (patch)
tree7b710a785331abfe28b5b46a7695e6cbd81b7794 /Mailman/Logging/Logger.py
parent9934c9b2b0e76a0b77b7869ecf68cd960d4d5bd7 (diff)
downloadmailman-0ed815a216c7bb6f820cfdf99fc8d31bcfd19fc0.tar.gz
mailman-0ed815a216c7bb6f820cfdf99fc8d31bcfd19fc0.tar.zst
mailman-0ed815a216c7bb6f820cfdf99fc8d31bcfd19fc0.zip
Diffstat (limited to 'Mailman/Logging/Logger.py')
-rw-r--r--Mailman/Logging/Logger.py104
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