diff --git a/docs/offlineimap.txt b/docs/offlineimap.txt index e547f6d..f4a2dd7 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 c6b8a64..5c90377 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."""