[Mailman-Developers] [Mailman-checkins] SF.net SVN: mailman: [7858] trunk/mailman

Tokio Kikuchi tkikuchi at is.kochi-u.ac.jp
Sun Apr 23 01:30:54 CEST 2006


Hi Barry,

I had some hours playing with the new svn trunk.  (I was a little bit 
busy because our academic year begins April.)

bwarsaw at users.sourceforge.net wrote:
> Revision: 7858
> Author:   bwarsaw
> Date:     2006-04-16 21:08:17 -0700 (Sun, 16 Apr 2006)
> ViewCVS:  http://svn.sourceforge.net/mailman/?rev=7858&view=rev
> 
> Log Message:
> -----------
> - Convert all logging to Python's standard logging module.  Get rid of all
>   traces of our crufty old Syslog.  Most of this work was purely mechanical,
>   except for:

I get this for a fresh install of svn trunk.  You may have old install 
remained, if you haven't experienced this.

% bin/mailmanctl start
Traceback (most recent call last):
   File "bin/mailmanctl", line 112, in ?
     from Mailman.Logging.Syslog import syslog
ImportError: No module named Logging.Syslog

Also, if you send SIGHUP to reopen the logs, only the last reopen 
messages is recorded because each runners try to reopen the log file. 
We may have to restart qrunners if mailmanctl receive SIGHUP and it has 
started new log files.  We may also utilize the backupCount feature for 
log rotation (intruducing LOG_BACKUP_COUNT in Defaults.py).

>   
>   1) Initializing the loggers.  For this, there's a new module
>      Mailman/loginit.py (yes all modules from now on will use PEP 8
>      names).  We can't call this 'logging.py' because that will
>      interfere with importing the stdlib module of the same name (can
>      you say Python 2.5 and absolute imports?).
>      
>      If you want to write log messages both to the log file and to
>      stderr, pass True to loginit.initialize().  This will turn on
>      propagation of log messages to the parent 'mailman' logger, which
>      is set up to print to stderr.  This is how bin/qrunner works when
>      not running as a subprocess of mailmanctl.
>      
>   2) The driver script.  I had to untwist the StampedLogger stuff and
>      implement differently printing exceptions and such to log/error
>      because standard logging objects don't have a write() method.  So
>      we write to a cStringIO and then pass that to the logger.
>      
>   3) SMTPDirect.py because of the configurability of the log messages.
>      This required changing SafeDict into a dict subclass (which is
>      better than using UserDicts anyway -- yay Python 2.3!).  It's
>      probably still possible to flummox things up if you change the
>      name of the loggers in the SMTP_LOG_* variables in mm_cfg.py.
>      However, the worst you can do is cause output to go to stderr and
>      not go to a log file.
>      
>   Note too that all entry points into the Mailman system must call
>   Mailman.loginit.initialize() or the log output will go to stderr
>   (which may occasionally be what you want).  Currently all CGIs and
>   qrunners should be working properly.
>   
>   I wish I could have tested all code paths that touch the logger, but
>   that's infeasible.  I have tested this, but it's possible that there
>   were some mistakes in the translation.
>   
> - Mailman.Bouncers.BounceAPI.Stop is a singleton, but not a class
>   instance any more.
>   
> - True/False code cleanup, PEP 8 import restructuring, whitespace
>   normalization, and copyright year updates, as appropriate.
> 


-- 
Tokio Kikuchi, tkikuchi@ is.kochi-u.ac.jp
http://weather.is.kochi-u.ac.jp/


More information about the Mailman-Developers mailing list