Chromium Code Reviews| Index: utils/tools.py |
| diff --git a/utils/tools.py b/utils/tools.py |
| index eecf709641bc8497a3d8e57480a65b3a8071d029..2885954faca8a2040e4ec9f04fc5779f45ba774d 100644 |
| --- a/utils/tools.py |
| +++ b/utils/tools.py |
| @@ -10,6 +10,7 @@ import optparse |
| import os |
| import sys |
| import time |
| +import traceback |
| class OptionParserWithLogging(optparse.OptionParser): |
| @@ -112,3 +113,23 @@ def fix_python_path(cmd): |
| elif out[0].endswith('.py'): |
| out.insert(0, sys.executable) |
| return out |
| + |
| + |
| +def report_error(error): |
| + """Prints a error to stderr, wrapping it into header and footer. |
| + |
| + That way errors can be reliably extracted from logs. It's indented to be used |
| + only for non recoverable unexpected errors. Is should NOT be used for input |
| + validation, command line argument errors, etc. |
| + |
| + Arguments: |
| + error: error message string (possibly multiple lines) or an instance of |
| + Exception subclass. In the later case a traceback will also be |
| + reported. It's assumed that |report_error| is called in an except |
| + block where |error| was caught. |
| + """ |
| + print >> sys.stderr, '[------ Swarming Error ------]' |
| + print >> sys.stderr, str(error) |
|
M-A Ruel
2013/10/30 01:08:09
Note that this will crash if it is an unicode stri
|
| + if isinstance(error, Exception): |
| + print >> sys.stderr, traceback.format_exc(), |
| + print >> sys.stderr, '[----------------------------]' |