{"id":172,"date":"2007-09-26T07:35:00","date_gmt":"2007-09-26T07:35:00","guid":{"rendered":"\/lisa\/post\/2007\/09\/26\/A-well-worn-pattern-Log4Fox.aspx"},"modified":"2007-09-26T07:35:00","modified_gmt":"2007-09-26T07:35:00","slug":"a-well-worn-pattern-log4fox","status":"publish","type":"post","link":"https:\/\/spacefold.com\/lisa\/2007\/09\/26\/a-well-worn-pattern-log4fox\/","title":{"rendered":"A well-worn pattern: Log4Fox"},"content":{"rendered":"<p>\nWhen I agreed to write articles for FoxTalk again, after a very long absence, I did so with mixed feelings.&nbsp; <a href=\"http:\/\/talkingfox.blogspot.com\/\" target=\"_blank\" title=\"David Steven's blog\" rel=\"noopener\">David Stevenson<\/a> 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.&nbsp; 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.&nbsp;\n<\/p>\n<p>\nThe <a href=\"\/articles\/PDFPower\/\" title=\"PDF Power to the People\">PDF article<\/a> and <a href=\"\/articles\/PrintJobs\/\" title=\"A Print Job to call your own\">its sister piece<\/a>, which is about many obscure techniques needed to control printing in VFP, were also the first pieces I re-published here on Spacefold.&nbsp; These two IMHO constitute the contribution that is most uniquely-mine to make, outside the in-the-box bits, to the VFP 9 canon.&nbsp; I want people to have access to this information.\n<\/p>\n<p class=\"NB\">\nI am very sad about what has happened to FoxTalk, by the way.&nbsp; I wish these articles <em>were<\/em> properly available without my re-purposing the content.&nbsp; (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.\n<\/p>\n<p>\nThe <a href=\"\/articles\/Log4Fox\/\" title=\"Log4Fox: A Logging API for Visual FoxPro\">Log4Fox<\/a> piece I&#39;ve just posted to our Spacefold article cache remains, nevertheless, my favorite among my this-century FoxTalk contributions.&nbsp; And this is a curious thing &#8211;because in some ways it&#39;s the least original work I&#39;ve ever done.&nbsp; It&#39;s more like a gloss, or an <em>explication de texte<\/em> from my lit-crit days, than an original short story.\n<\/p>\n<p>\nWhat I mean to say: Log4Fox is an abbreviated Visual FoxPro code implementation of <a href=\"http:\/\/logging.apache.org\/\" target=\"_blank\" title=\"Apache Foundation Logging page\" rel=\"noopener\">log4j<\/a>, an instrumentation API that I came to know, and to love, during the years C and I spent working in Java.&nbsp;\n<\/p>\n<p>\n<em>It&#39;s the right tool for the job.<\/em>&nbsp; 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.\n<\/p>\n<p>\nIt&#39;s not <em>my<\/em> 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).&nbsp; It&#39;s just a really great design.&nbsp;\n<\/p>\n<p>\nI hope you enjoy my introduction to it, whether you work in Fox or Java or Perl or&#8230; anything.&nbsp;&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>When I agreed to write articles for FoxTalk again, after a very long absence, I did so with mixed feelings.&nbsp; 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.&nbsp; Chief<a class=\"more-link\" href=\"https:\/\/spacefold.com\/lisa\/2007\/09\/26\/a-well-worn-pattern-log4fox\/\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,9],"tags":[],"class_list":["post-172","post","type-post","status-publish","format-standard","hentry","category-general-techspeak","category-visual-foxpro"],"_links":{"self":[{"href":"https:\/\/spacefold.com\/lisa\/wp-json\/wp\/v2\/posts\/172","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/spacefold.com\/lisa\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/spacefold.com\/lisa\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/spacefold.com\/lisa\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/spacefold.com\/lisa\/wp-json\/wp\/v2\/comments?post=172"}],"version-history":[{"count":0,"href":"https:\/\/spacefold.com\/lisa\/wp-json\/wp\/v2\/posts\/172\/revisions"}],"wp:attachment":[{"href":"https:\/\/spacefold.com\/lisa\/wp-json\/wp\/v2\/media?parent=172"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/spacefold.com\/lisa\/wp-json\/wp\/v2\/categories?post=172"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/spacefold.com\/lisa\/wp-json\/wp\/v2\/tags?post=172"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}