But i guess having own log is nicer when you want to know what exactly crashed you eh
Well I understand it in other languages (like C++ which the majority here uses) as it can be a bit troublesome to understand what the assembly as location X does, because it's made by the compiler.
But if I have lets say ERROR_ACCESS_VIOLATION (0xC0000005) and ESI = 0x1234 , EDI = some valid address, and at EIP there is an instruction MOVS BYTE PTR [EDI], BYTE PTR [ESI], I can figure out that ESI value is fucked up somewhere earlier and correct it almost instantly in my source as I'll just check the exact same code snippet in my source.
However, this kinda things only work if the crash is caused in your DLL. It can be a nuisance if the crash is happening somewhere at a completely random location.