In Solidity, there is no partial function execution. If at any point in the function there is an error thrown, the entire function fails and none of your logs would be logged. Actually all the logs would appear in the same transaction object created upon completion of the entire function, they would not be output one by one.
You can think of require as similar to an if (condition) revert(), where no state changes are made; when there’s a throw, everything is reverted to the initial state (ie nothing happens) except for the gas used to make the function call.
If you want to debug step by step, you can use remixd (https://remix.ethereum.org/) which has a step by step debugging tool.
There is also work being done on later versions of Solidity to make error messages more descriptive, so instead of just “invalid opcode”, later versions may allow for you to describe your throw message.
Best Answer
Just change the event to place the name first: