Log files you create are only as good as the information you can glean from them. Also, the way you log can change pretty dramatically depending on the size of your application, application/system/business requirements, decentralization, and many other factors.
Log Management
If you were going to be logging within a small non-distributed, one-off application I'd probably suggest the route of logging directly to a file on your server. Otherwise, I'd suggest the use of a log management solution like Loggly, or even rolling your own logging layer with Fluentd, along with other tools.
Honestly Loggly and Fluentd are just the tip of the iceberg here. There are a plethora of tools one could use to listen for, normalize, manage, and analyze logs.
Another good, full-featured tool to look at is https://github.com/Graylog2/graylog2-server. It's another open-sourced alternative that is easy to deploy, manage and use.
What To Log
No one can tell you how, or what you should log within your own application. The best anyone can do is guide you in the right direction, purely because of application/system/business requirements.
Sit down and think about the information you're processing in your application, if something goes wrong, what would you need in-order to figure out what went wrong? It will probably take some time, but you'll figure out where your sweet spot is for logging.
Just make sure you don't log any sensitive data. That's just asking for trouble later down the road.
Articles Worth Reading