Saturday, December 14, 2013

A Live Log

At least we can say we held the Summit. Well, so, okay, I’ll say it: We held Finili Developer Summit 2013 this afternoon. And in spite of the small scale, we had a productive discussion, particularly about the issues of logging. The run time environment (RTE) has the responsibility of capturing events that occur with respect to input and output files while a Finili program is running, and delivering appropriate messages to the log.

One surprising point, to me at least, was that it is possible for the RTE to maintain a valid XML-format log as it goes along. This sounds impossible because an XML file must end with several closing tags to terminate the XML objects in the file. These can’t be written until the file is complete. At least that’s what I had heard, but it turns out there are a few ways to write the terminating tags in the file along the way, rewriting them as needed each time the file expands. With a normal caching scheme this doesn’t have to add much overhead to the logging process.

A live log is important because it allows users to display the log while the program is running. Users might cancel a running program if the log shows that it is taking incorrect or unexpected actions. A live log allows them to do so sooner. A live log also integrates more easily into the RTE visualizations. Possibly (though no one is promising this) all the metrics for the visualization can be delivered via the logging mechanism.