Hey Brain,
I’m sure you will start a firestorm of discussion on this one.
I think it will depend ultimately on your needs. For quick and dirty, I like to use the pub.flow:debugLog. This is handy because you can set it to adhere to a log level. So, if you run prod in 0 or 1, and you set the call to pub.flow:debugLog to 4, then it will only log if you raise the over all server logging level to 4.
In other cases, I had a need to track transactions (for those customer who did not have/or did not want to use monitor) in and out of adapters. For this, I wrote to a custom log file and/or db table.
This is the route that I normally take, that is, to write to a custom storage mechanism. I have some base code that I always use. The base code allows for reading and writing to a flat file (pipe delimited), to an XML file, and to a database table. I have a extended setting in the server.cnf file that I use to define the storage type.
Then, I use a couple of DSP files to invoke and display results.
They are crude, but very effective in times of dire need (i.e., system down, people breathing down your neck.)
The fact that the logging exists is transparent to most of my customers.
One improvement I made in the logging was to publish a document containing the logging information.
HTH
Ray
#Flow-and-Java-services#webMethods#Integration-Server-and-ESB