Retrofitting auditing / logging to an application not laid out for it is the same as writing the tests for a program / module after the code has been written - it's tedious if it works at all.

My best tip is that you either rewrite your application such that every input widget allows a "tee filter" to log all the input to a logging facility, which will allow fine grained auditing, or that you use a hardware capture device to connect between the keyboard and the main computer unit (or a specialized device driver that does "tee" the keyboard input to a logging facility).

If you have the luxury of being able to redesign your application, about the only things you need to change are your input widgets in such a way that they support logging and your data entry facilities ("dialogs", "windows") as well, as you will only want to log committed transactions (the user pressed the "OK" button instead of the "Cancel" button or the "Dismiss" button). Of course, this will make your application also much more testable, as you will invariably not only add a "logging" filter but also an "input filter" which will allow you to replay past transactions - which is what testing is all about.

Those ideas were not made up by me but I stole them from http://www.extremeprogramming.org - look into the "regression test" section(s). Even though XP looks and sounds like just another buzzword (have a look at the ads in the Dr. Dobb's Journal), it has some ideas that just make sense - maybe you can adapt some of them.


In reply to Re: The Future of the Capture/Playback Feature by Corion
in thread The Future of the Capture/Playback Feature by tompoe

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.