I'ts really not much different than the way SQL or Oracle does it. DDL and DML is recorded in the log in the order in which it occurred. Recover it in the same order and you should end up with a database in the same condition as before recovery in regards to committed transactions.
I don't think it's actually ASCII text that it uses to record the statements. Its actually stored as a binary file but there's a command used to translate it into SQL commands that get piped into the command line program.
If you're thinking about non-deterministic updates, the log takes that into account as well. IOW statements like "update account set balance = balance + @x" will be converted to a deterministic value.