This is really a personal call that you have to make based on your environment and the way you work. There are advantages and disadvantages to both.
The major advantage of a combined log (everything going to one file) is that it's written out contemporaneously: If an error occurs you see it right under the "access" line (the request) that caused it.
This can make troubleshooting a little easier if you don't have a huge volume of requests.
Conversely, separate log files makes sense whenever the volume of entries is so large as to be overwhelming when trying to troubleshoot a problem.
The "traditional" division for Apache is access
and error
logs --
- The Access log contains all the requests the server received (and the response codes it sent back), and sometimes additional useful bits like SSL Protocol, etc..
- The Error log contains, as its name implies, errors (CGI/PHP/etc. failures, exceptions, stack prints, debugging output).
When you're hunting down a problem you watch the error log and provoke the problem, and you get just the errors (as opposed to the error plus all the GET
requests for CSS files, Javascript, images, etc. that your browser went to download before you reached the part where things crash).
You can take this further to an extreme (separate Access, Agent, Referrer, SSL, etc. logs), but personally I see no need to do that. The traditional "Error" and "Access" (everything that isn't an error) logging is what you'll see in most deployments.
There may be a reason to keep additional dedicated logs for referrers, etc. if you're doing analysis or statistics, or you may omit that information from the Access log if you don't care about it, but I wouldn't subdivide logs to the point where you have to look in more than 2 places to troubleshoot a problem. That just winds up making more work for you.