docker-offlineimap/offlineimap/ui/Noninteractive.py
Rodolfo García Peñas (kix) f8cfe98d9c Include offlineimap and pid in non interactive logs
This patch includes the "offlineimap" string and the proccess id
in the output for non interactive logs and syslog logs.

Now, the output is something like this (syslog):

Oct 11 21:55:10 yangon offlineimap[635798]: Syncing foo: IMAP -> Maildir
Oct 11 21:55:10 yangon offlineimap[635798]: Syncing foo bar: IMAP -> Maildir
Oct 11 21:55:10 yangon offlineimap[635798]: Syncing INBOX: IMAP -> Maildir
Oct 11 21:55:10 yangon offlineimap[635798]: Syncing bar: IMAP -> Maildir
Oct 11 21:55:10 yangon offlineimap[635798]: Syncing Trash: IMAP -> Maildir

Closes #88
2021-10-12 18:00:51 +02:00

57 lines
2.0 KiB
Python

# Noninteractive UI
# Copyright (C) 2002-2016 John Goerzen & contributors.
#
# 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 St, Fifth Floor, Boston, MA 02110-1301 USA
import logging
import offlineimap
from offlineimap.ui.UIBase import UIBase
class Basic(UIBase):
"""'Basic' simply sets log level to INFO."""
def __init__(self, config, loglevel=logging.INFO):
return super(Basic, self).__init__(config, loglevel)
class Quiet(UIBase):
"""'Quiet' simply sets log level to WARNING"""
def __init__(self, config, loglevel=logging.WARNING):
return super(Quiet, self).__init__(config, loglevel)
class Syslog(UIBase):
"""'Syslog' sets log level to INFO and outputs to syslog instead of stdout"""
def __init__(self, config, loglevel=logging.INFO):
return super(Syslog, self).__init__(config, loglevel)
def setup_consolehandler(self):
# create syslog handler
ch = logging.handlers.SysLogHandler('/dev/log')
# create formatter and add it to the handlers
self.formatter = logging.Formatter("offlineimap[%(process)d]: %(message)s")
ch.setFormatter(self.formatter)
# add the handlers to the logger
self.logger.addHandler(ch)
self.logger.info(offlineimap.banner)
return ch
def setup_sysloghandler(self):
pass # Do not honor -s (log to syslog) CLI option.