Package: diagnostics
Module for logging ofdetailed tracebackas HTML page.
Unexpected exceptions are catched and logged for further audit. Exceptions
in diagnostic’s exception handler are properly handled and logged
(but formatted only as standard Python traceback). Usage is simple as code below.fromdiagnosticsimportexception_hookif__name__=='__main__':# you have to create "log/" directory next to file that is your main moduleexception_hook.enable()fromdiagnosticsimportexception_hookfromdiagnostics.storagesimportFileStorageif__name__=='__main__':# or simply set your own storagedirectory_path="/path/to/your/log/directory/with/html/tracebacks"exception_hook.enable(storage=FileStorage(directory_path))fromdiagnosticsimportexception_hookif__name__=='__main__':withexception_hook:try_do_risky_job(...)There is even support for logging in diagnostics. Classdiagnostics.logging.FileHandlercreates files with detailed traceback
and log messages are appended to the fileinfo.login directory with
logged tracebacks.importloggingfromdiagnosticsimportexception_hookfromdiagnostics.loggingimportFileHandlerif__name__=='__main__':file_path="/path/to/log/directory/with/html/tracebacks/info.log"log_handler=FileHandler(file_path)exception_hook.enable_for_logger(logging.getLogger(),handler=log_handler)try:try_do_risky_job(...)except:logging.exception("Risky job failed")importloggingfromdiagnosticsimportexception_hookfromdiagnostics.loggingimportFileHandlerif__name__=='__main__':file_path="/path/to/log/directory/with/html/tracebacks/info.log"log_handler=FileHandler(file_path)exception_hook.enable_for_logger("example_logger",handler=log_handler)try:try_do_risky_job(...)except:logger=logging.getLogger("example_logger")logger.error("Error occured",exc_info=True)InstallationFrom PyPIpip install diagnosticsor from git repopip install git+git://github.com/miso-belica/diagnostics.gitTestsRun tests via$nosetests-2.6&&nosetests-3.2&&nosetests-2.7&&nosetests-3.3Changelog for diagnostics module0.2.4 (2014-04-14)BUG FIX:Correctly logged traceback if no exception occured.0.2.3 (2013-11-15)BUG FIX:Context code is rendered with correct line number even
when exception is raised from with-statement block.BUG FIX:Added time and logging level name into log messages.0.2.2 (2013-10-05)BUG FIX:Fixed usage in terminal.BUG FIX:Fixed reading of JS/CSS file in Python 3. HTML traceback
is properly rendered.0.2.1 (2013-10-04)FEATURE:Removed empty trailing lines from context code.BUG FIX:Removed duplicated global variables from list of local variables.BUG FIX:Don’t show types/modules/functions in list of local variables.0.2.0 (2013-06-22)BUG FIX:Removed class types, modules and other crap from
list of global variables.BUG FIX:Function/method variables are ordered according
to function/method signature.FEATURE:The same exceptions are stored only once
(according to their hash).BUG FIX:Recover when converting object to unicode raises
exception (e.g. BeautifulSoup).BUG FIX:Format code context even if code is in binary form
(e.g. lxml).BUG FIX:Usereprfunction when instance can’t be de/en-coded
to the unicode/bytes.BUG FIX:Tracebacks with the same type of exception and timestamp
are stored to different files.FEATURE:Added support for with statement.FEATURE:Added logging support.0.1.0 (2013-02-13)First public release.