added --quiet commandline option

This commit is contained in:
Patrick Ulbrich
2013-11-30 12:47:40 +01:00
parent 0ab5f91fb7
commit 9bcffa79ed

View File

@@ -26,6 +26,7 @@
from gi.repository import GObject, GLib
from dbus.mainloop.glib import DBusGMainLoop
import threading
import argparse
import logging
import logging.handlers
import os
@@ -40,6 +41,8 @@ from common.subproc import terminate_subprocesses
from daemon.mailchecker import MailChecker
from daemon.idlers import IdlerRunner
PROGNAME = 'mailnagd'
LOG_LEVEL = logging.DEBUG
LOG_FORMAT = '%(levelname)s (%(asctime)s): %(message)s'
LOG_DATE_FORMAT = '%Y-%m-%d %H:%M:%S'
@@ -128,16 +131,32 @@ def cleanup():
os._exit(os.EX_SOFTWARE)
def init_logging():
def get_args():
parser = argparse.ArgumentParser(prog=PROGNAME)
parser.add_argument('--quiet', action = 'store_true',
help = "don't print log messages to stdout")
return parser.parse_args()
def init_logging(enable_stdout = True):
logging.basicConfig(
format = LOG_FORMAT,
datefmt = LOG_DATE_FORMAT,
level = LOG_LEVEL)
logger = logging.getLogger('')
syslog_handler = logging.handlers.SysLogHandler(address='/dev/log')
syslog_handler.setLevel(LOG_LEVEL)
syslog_handler.setFormatter(logging.Formatter(LOG_FORMAT, LOG_DATE_FORMAT))
logging.getLogger('').addHandler(syslog_handler)
stdout_handler = logger.handlers[0]
logger.addHandler(syslog_handler)
if not enable_stdout:
logger.removeHandler(stdout_handler)
def sigterm_handler(data):
@@ -179,19 +198,22 @@ def unload_plugins():
def main():
global mainloop, start_thread
set_procname("mailnagd")
set_procname(PROGNAME)
GObject.threads_init()
DBusGMainLoop(set_as_default = True)
GLib.unix_signal_add(GLib.PRIORITY_HIGH, signal.SIGTERM,
sigterm_handler, None)
# Get commandline arguments
args = get_args()
# shut down an (possibly) already running Mailnag daemon
# (must be called before instantiation of the DBUSService).
shutdown_existing_instance()
# Note: don't start logging before an existing Mailnag
# instance has been shut down completely (will corrupt logfile).
init_logging()
init_logging(not args.quiet)
try:
cfg = read_config()