[Tutor] Universal error handler

Andrew Robert andrew.arobert at gmail.com
Tue Jun 20 20:37:42 CEST 2006


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

You may also want to try a error handling like this.

It is platform clean and uses the system standard logging routines.


import os, logging, logging.handlers


def eventlogger(level,message):
	"""
	Sent trapped events to NT application event logger
	"""

	if os.name == "nt":
		
		logger = logging.getLogger("")
		logger.setLevel(logging.DEBUG)
		ntl = logging.handlers.NTEventLogHandler("Program Event Logger Message")
		logger.addHandler(ntl)
		
		try:
			method = getattr(logger,level)
			message = "%s message: %s" % (level.capitalize(),message)
	                method(message)
			sys.exit(0)
		except AttributeError:
			method = logger.critical
			message = "Uncoded event level"
		        method(message)
			sys.exit(1)
		
	else :
		import syslog, time
		timestamp = time.asctime(time.localtime(time.time()))
		logmsg = "Event Logger -   %s  - %s :: $s " % (timestamp,
level.capitalize(),message)
		syslogg.syslog(logmsg)
		



You then call it as a function from wherever an error gets raised.

       msg="OH NO - blue screen of death"
       eventlogger("error",msg)

       msg="OH NO - system slow - scary but you will live"
       eventlogger("warning",msg)

       msg="Shh - don't tell anyone but it worked"
       eventlogger("info",msg)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (MingW32)
Comment: GnuPT 2.7.2

iD8DBQFEmEB2Dvn/4H0LjDwRAhlmAKCzch2JVynMsNcCY9Cnu8crMqN5fQCfQJWu
ZT8frQiRZXKJZMLeGnyeFbM=
=zCBc
-----END PGP SIGNATURE-----


More information about the Tutor mailing list