From 585e5d5e2ef377f72110b9849adf59d1aee2c2fa Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Sat, 26 Sep 2015 20:43:09 -0400 Subject: [PATCH] logging: add a switch to log to syslog Signed-off-by: Ben Boeckel Signed-off-by: Nicolas Sebrecht --- docs/offlineimap.txt | 4 ++++ offlineimap/init.py | 9 +++++++++ offlineimap/ui/UIBase.py | 12 ++++++++++++ 3 files changed, 25 insertions(+) diff --git a/docs/offlineimap.txt b/docs/offlineimap.txt index 618f2ab..7a6f1c7 100644 --- a/docs/offlineimap.txt +++ b/docs/offlineimap.txt @@ -105,6 +105,10 @@ included), implies the single-thread option -1. Send logs to . +-s:: + + Send logs to syslog. + -f :: diff --git a/offlineimap/init.py b/offlineimap/init.py index a48c152..631cd13 100644 --- a/offlineimap/init.py +++ b/offlineimap/init.py @@ -89,6 +89,11 @@ class OfflineImap: parser.add_option("-l", dest="logfile", metavar="FILE", help="log to FILE") + parser.add_option("-s", + action="store_true", dest="syslog", + default=False, + help="log to syslog") + parser.add_option("-f", dest="folders", metavar="folder1[,folder2[,...]]", help="only sync the specified folders") @@ -196,6 +201,10 @@ class OfflineImap: if options.logfile: self.ui.setlogfile(options.logfile) + #set up syslog + if options.syslog: + self.ui.setup_sysloghandler() + #welcome blurb self.ui.init_banner() diff --git a/offlineimap/ui/UIBase.py b/offlineimap/ui/UIBase.py index 3e698ab..f5ba5ba 100644 --- a/offlineimap/ui/UIBase.py +++ b/offlineimap/ui/UIBase.py @@ -91,6 +91,18 @@ class UIBase(object): self.logger.info(offlineimap.banner) return ch + def setup_sysloghandler(self): + """Backend specific syslog handler.""" + + # create console handler with a higher log level + ch = logging.SysLogHandler(sys.stdout) + #ch.setLevel(logging.DEBUG) + # create formatter and add it to the handlers + self.formatter = logging.Formatter("%(message)s") + ch.setFormatter(self.formatter) + # add the handlers to the logger + self.logger.addHandler(ch) + def setlogfile(self, logfile): """Create file handler which logs to file."""