Ledger is great. I have going on ten years of data in my personal ledger and an admittedly rather ludicrous reporting app that lets me slice and dice the data any way I want.
Data entry is primarily via emacs, although for my business ledger I have a script that pulls transfers from my Stripe account.
I also use this. I liked it so much that I wrote my own parser, importer and web application to view a bunch of different reports.