The AccuRev Server maintains a log file, acserver.log, in subdirectory logs of the site_slice directory. Each log message includes a timestamp, the AccuRev username that invoked a client command, and the IP address of the client machine.AccuRev also supports client-side logging. See Logging of the AccuRev Online Help Guide for more information.As of AccuRev V5.4, the format of acserver.log entries has been expanded to include a time zone offset. For example:On UNIX/Linux server machines, log file rotation keeps the log file from growing too large. Periodically, the AccuRev Server timestamps the current log file and moves it to subdirectory logs of the site_slice directory. For example, the log file might be renamed acserver-2002-01-23-04-47-29.log. The Server then creates a new acserver.log file. The log file is rotated weekly; it is also rotated whenever the AccuRev Server is restarted.LOG_LEVEL = 3 #enable the highest (most verbose) level of loggingThe Server is a multi-threaded program, so it can handle several client commands concurrently. A typical AccuRev client command causes the AccuRev Server to execute a set of server subtasks. For each client command, the Server’s “master thread” creates a new “worker thread” to perform the set of subtasks for that particular command. When the worker thread has performed all the subtasks, it exits. When the LOG_LEVEL is 2 or 3, the log messages indicate many of the details of server subtask execution.For example, a single update command can generate a set of log messages like this:The first message is generated at the time (2008/02/09 16:24:20) a client request is accepted by the Server’s master thread. This is connection 1076 between the client and the server). The master thread creates a new worker thread (worker thread-ID 00000E98) and hands the request off to it.This message indicates the user who invoked the command (mary), the name of the command, marked with an asterisk (*update), and the IP address of the client machine (1.2.3.101).Each time the worker thread begins a particular subtask, it sends a message to the log. In the lines shown above, the client command is implemented through server subtasks cur_wspace, ws_type, stream_top, check_time, update, and end. (The last subtask is always named end.) Each message also includes the username, thread-ID, and client IP address.The last message is generated by the worker thread after it has completed all subtasks and is about to exit. (If the LOG_LEVEL is 1, this is the only message generated for each client command.) In addition to the username, thread-ID, and client IP address data also included in the preceding messages, this message reports summary measures, listed in boldface above:
• success / failure (success in the example above): The overall result of the attempt to execute the client command.
• run time (0.563): the total time, in seconds, that the worker thread took to process the entire client command.
• last check (0): the time, in seconds, elapsed since last progress update from worker thread. In a success message, this value is 0. In a failure message, this value is non-zero.
• time delta (0): the time difference between the clocks on the client and server machines.
• exit status (0): the exit code for thread: 0 = success, non-zero = error.
Micro Focus |