In the cloud era there are several companies offering centralized log services. In general terms these services consist in 2 components:
- A client component that takes care of collecting log information and sending it to centralized storage.
- A web application that allows you to browse the centralized storage
One company that offers this kind of service is Logentries. I used it for a couple of Ruby applications, some of them hosted on Heroku and others hosted on my own server. In the case of Heroku apps, the integration with LogEntries is transparent (you don’t need to modify your app code), you just have to add logentries plugin to your Heroku app , configure it and that’s all, all log information is sent to LogEntries. For applications running outside Heroku, you can use logentries gem to your app, and just make your app to use LogEntries logger.
Other service I have used is Papertrail. I used it for Ruby and .Net applications hosted on my own servers and in each case I have used a different integration strategy. For .Net apps I like to use Log4Net library which natively integrates with Papertrail (details can be found here). In the case of Ruby apps, I have used a different strategy. I install on my server a client application that takes care of reading local log files and push them to the Papertrial website. This strategy is totally transparent for the application and is application agnostic: no matter what technology your app is built on.