summaryrefslogtreecommitdiff
blob: d385255b2b673b097900d7f20793a3c77a640a14 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# elog/mod_syslog.py - elog dispatch module
# Copyright 2006-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

import sys
import syslog
from portage.const import EBUILD_PHASES
from portage import _encodings

_pri = {
	"INFO"   : syslog.LOG_INFO, 
	"WARN"   : syslog.LOG_WARNING, 
	"ERROR"  : syslog.LOG_ERR, 
	"LOG"    : syslog.LOG_NOTICE,
	"QA"     : syslog.LOG_WARNING
}

def process(mysettings, key, logentries, fulltext):
	syslog.openlog("portage", syslog.LOG_ERR | syslog.LOG_WARNING | syslog.LOG_INFO | syslog.LOG_NOTICE, syslog.LOG_LOCAL5)
	for phase in EBUILD_PHASES:
		if not phase in logentries:
			continue
		for msgtype,msgcontent in logentries[phase]:
			msgtext = "".join(msgcontent)
			msgtext = "%s: %s: %s" % (key, phase, msgtext)
			if sys.hexversion < 0x3000000 and isinstance(msgtext, unicode):
				# Avoid TypeError from syslog.syslog()
				msgtext = msgtext.encode(_encodings['content'], 
					'backslashreplace')
			syslog.syslog(_pri[msgtype], msgtext)
	syslog.closelog()