Using client-side logging
For logging specific to pooling, see Using pooling logging. It may also be helpful to view server-side logs. See Using server-side logging. |
You can enable client-side logging either by setting values in the xfNetLink Java properties file (e.g., xfNetLnk.ini) or by calling a method in one of the classes in your JAR file.
Two levels of client-side logging are available: full and error-only. In a production environment, we recommend that you enable error-only logging. Full logging can be useful during development, but we do not recommend it for production.
Client-side logging for xfNetLink Java produces two files, logfilename.log and logfilenameJCW.log, where logfilename is a name you specify. The file logfilename.log contains the complete packets sent back and forth between the Java application and xfServerPlus, while logfilenameJCW.log contains the methods called and their input and output parameters. Most exceptions are written to logfilename.log, but some may go to logfilenameJCW.log, depending on where the exception occurs.
We recommend that you always direct logging output to a file by specifying a log filename. By default, packet information is output to stderr, but method and parameter information is not, which means it cannot be seen unless it is written to file.
If your client application is not attached to a terminal (e.g., JavaServer Pages), output to stderr will not be visible; you must use the xf_LogFile property to write it to file. |
If the log file does not exist, it will be created; if it already exists, additional information will be appended to the end.
Note that if encryption is enabled, the log displays a string of 10 asterisks instead of the packet data for encrypted methods.
To enable logging in the properties file
- To enable full logging, set xf_DebugOutput to “true”.
- To enable error-only logging, set xf_DebugOutput to “error”.
- To write the output to file, specify the filename with the xf_LogFile option.
All processes will write to the same file. See Specifying logging options for more information on using properties file settings.
To enable logging by calling a method
The log files will contain data only for the class from which they are called.
- To enable full logging, call the setxfLogging() method and pass “true” as the parameter.
- To enable error-only logging, call the setxfLogging() method and pass “true” and then also call the setxfExceptOnly() method and pass “true” as the parameter.
- To write the output to file, call the setxfLogfile() method and pass the filename. Otherwise output goes to stderr.
For example, to enable error-only logging,
xfTest instance = new xfTest(); instance.setxfLogging(true); // turn on logging instance.setxfExceptOnly(true); // log exceptions only instance.setxfLogfile("c:\\myDir\\logName.log");
Sample log files
If full logging is enabled, the packet output (logfilename.log) shows the IP address that SWPConnect is listening on, the current time-out settings, the packets sent and received, and any exceptions that occur. If error-only logging is enabled, the session start-up information displays, followed by exceptions.
As shown in the sample below, connection information prints once for each session; sent and received data prints for each call to xfServerPlus.
--------------------------------------- SynergyWebProxy session beginning: July 13, 2014 10:15:18 AM PST Local host: tiger/111.22.33.44 Request timeout = 120 seconds Connect timeout = 600 seconds Communicate timeout = 1800 seconds --------------------------------------- Sending string: Jcompid0009;2;AL5#abcde;AL5#54321; Received string: Rcompid0009;03;00AL9#Return ;01AL5#back1;02AL5#back2; Sending string: Jcompid0010;2;AL5#abcde;AL5#54321; Received string: Rcompid0010;02;00DE9#123456789;02AL5#back ;
If full logging is enabled, the method and parameter output (logfilenameJCW.log) shows the IP address, followed by each method called with its input and output parameters, and may include exceptions as well. If error-only logging is enabled, the session start-up information displays followed by any exceptions. The parameter information includes the Java data type, parameter name, and the data in the parameter.
SynergyWebProxy session beginning: July 13, 2014 11:35:02 AM PST Local host: tiger/111.22.33.44 ** In method: function_one * Input parameters String p1 =This is an Alpha field 50 characters long a test long p2 = 12345 double p3 = 1234567.911 int p4 = 12345 * Output parameters ** In method: function_two * Input parameters DoubleHolder p1 = 1.23456789012E9 DoubleHolder p2 = 12345.6789 double p3 = 12345.6789 double p4 = 1.234567891E7 long p5 = 1234567890 DoubleHolder p6 = 0.123456 double p7 = 1.2345 LongHolder p8 = 12345678 DoubleHolder p9 = 123456.7 long p10 = 123456789 * Output parameters DoubleHolder p1 = -1.23456789112E9 DoubleHolder p2 = 333.334 DoubleHolder p6 = 0.9988332 LongHolder p8 = -88991010 DoubleHolder p9 = 654321.0