ImportError is a built-in exception; an import failure will not look for the exception in the current module globals.
In fact, in Python 2, the import machinery doesn't even look in builtins for this; it uses the C equivalent of the exception, PyExc_ImportError. You cannot replace the exception with your own.
Just catch the exception at the top level of your python main script:
try:
main() # or whatever function is your main entrypoint
except ImportError:
logging.exception('Import oopsie')
or raise a custom exception in a exception handler instead. This is far clearer to future maintainers of your code than hacking additional features into standard exceptions.
In Python 3.1 and up, the import machinery has been largely reimplemented using a lot more Python code, and there you can do this by using the builtins module and assigning to builtins.ImportError, but I'd strongly advice against such hackery. If you do go this route, note that ImportError is passed name and path keyword arguments in addition to message.