Its actually a combination of both. First go to bottom and search updwards for error and the once you found walk downwards to find the application logic flow.
Well what if your log is weeks old , bottom logs shows up the latest log. I usually prefer opening log in a window and mark the cursor , and test the scenario in another window and watch the logs flow. First Grep (find) for "Error" , "Exception" to make sure there is nothing serious to look for.
Then grab a line where you could relate and walk downwards from there.