A well-worn pattern: Log4Fox

When I agreed to write articles for FoxTalk again, after a very long absence, I did so with mixed feelings.  David Stevenson made a persuasive case and provided a welcoming platform for both C and me to discuss certain areas of our work on VFP 9 that, we knew, would never make the documentation.  Chief among those areas, for me, was the thorny subject of PDF creation within Visual FoxPro, so that was naturally the first article I published. 

The PDF article and its sister piece, which is about many obscure techniques needed to control printing in VFP, were also the first pieces I re-published here on Spacefold.  These two IMHO constitute the contribution that is most uniquely-mine to make, outside the in-the-box bits, to the VFP 9 canon.  I want people to have access to this information.

I am very sad about what has happened to FoxTalk, by the way.  I wish these articles were properly available without my re-purposing the content.  (Those were the conditions under which I published them, and David enthusiastically agreed.) On alternate Thursdays I also wish I had never come back, after so many years, to watch the journal die a painful death.

The Log4Fox piece I've just posted to our Spacefold article cache remains, nevertheless, my favorite among my this-century FoxTalk contributions.  And this is a curious thing –because in some ways it's the least original work I've ever done.  It's more like a gloss, or an explication de texte from my lit-crit days, than an original short story.

What I mean to say: Log4Fox is an abbreviated Visual FoxPro code implementation of log4j, an instrumentation API that I came to know, and to love, during the years C and I spent working in Java. 

It's the right tool for the job.  And log4j is one of those designs that make you remember why you thought being a programmer was an art, and a joy, in the first place.

It's not my design. Neither is it the anointed design of any vendor, even though vendors provide their own logging APIs (I discuss this a bit in the article).  It's just a really great design. 

I hope you enjoy my introduction to it, whether you work in Fox or Java or Perl or… anything.