When an exception is raised in the application that is not accounted for (an uncaught/unhandled exception), it should be logged. I would like to test this behaviour in behave.
The logging is there to detect unhandled exceptions so developers can implement handling for these exceptions or fix them if needed.
In order to test this, I think I have to let the code under test raise an exception. The problem is that I cannot figure out how to do that without hard-coding the exception-raising in the production code. This is something I like to avoid as I do not think this test-code belongs in production.
While unit-testing I can easily mock a function to raise the exception. In behave I cannot do this as the application is started in another process.
How can I cause an exception to be raised in behave testing, so it looks as if the production code has caused it, without hard-coding the exception in the production code?
Regadless to framework/programming language exception is a state when something went wrong. This issue has to be handled somehow by the application, that's why a good programmer will write exception handling code in places where it needed at most.
Exception handling can be everything. In your case you want to test that exception is logged. Therefore I see the an easy test sequence here:

Execute the code/sequence of actions which will rase the exception
Verify that log file has an entry related to the exception raised in previous step with help of your test automation framework.
How to test uncaught/unhandled exceptions in behave?