You can use the traceback library to print out the stack trace in your exception catching:
http://docs.python.org/2/library/traceback.html#traceback-examples
By the way, it's a good practice to limit your exception handling. I'd change it so it only catches lxml parsing errors - your validate() function will return False if open() fails, for example.
Something along the line of this:
try:
with open(xmlfilename, 'r') as f:
return etree.fromstring(f.read(), xmlparser)
except etree.XMLSyntaxError:
print traceback.format_exc()
Hope that helps!