Logged messages are invaluable for debugging and diagnosing problems. Unfortunately, many execution logs are inscrutable in their raw form. For example, a production Google system may generate a billion-line log file in a single day. In my talk, I will detail two log-analysis tools that I developed to deal with this problem. These tools infer concise and precise models from large execution logs of sequential and distributed systems. Both tools enable new kinds of program analyses and make logs more useful to developers. For example, my empirical experiments show that developers find the inferred models useful for identifying bugs, confirming bugs that were previously known, and increasing their confidence in their implementations.