Logging

When you run an application, the Genero Application Server (GAS) creates separate log files for its dispatchers, proxies, and the Dynamic Virtual Machines (DVMs) started by those proxies. These files may be viewed for troubleshooting.

When in development mode, the ending page for a Genero Web Client for JavaScript (GWC-JS) Web application contains a link to the DVM log file.


Screenshot of the application ending page, showing link to the VM log file.

Figure 1. Example GWC-JS application ended page

Log files are also accessible from the GAS monitor via the (LOG) link next to the proxy name or PID display.
Note: See Table 2 for details on the location of log files.

Log file names

For the dispatcher log, the name specifies the type of dispatcher. Example:
  • httpdispatch.log
For the proxy log, the name indicates the type of proxy. Examples:
  • uaproxy-<session-id>.log
  • gwsproxy-<group>-<app>.log
For the DVM log, if the DVM is started by the gdcproxy or gwcproxy, the name includes the session-id:
  • vm-<session-id>.log
When working with Web services, a GWS proxy can spawn multiple DVMs. Each DVM gets its own log file. The log file is suffixed with a number from 0 to MAX_AVAILABLE-1. A log file is reused for new DVM logs if the previous DVM has finished, to avoid the accumulation of log files on disk.
  • vm-<group>-<app>-<number>.log
Examples:
  • vm-demo-Calculator-0.log
  • vm-demo-Calculator-1.log

Manage the Genero Application Server log files

The GAS creates a log for each application session. As a result, you can end up with a lot of log files. You should have some plan for archiving and removing log files. For UNIX-based platforms, you can use utilities such as logrotate to compress and move log files. For Windows, any program that can compress and archive log files can be used.

Note: If using logrotate on Apache web server logs, lograte will start and stop the Apache server. When Apache restarts, it also starts a new fastcgidispatch process (see Apache: mod_fastcgi) while it may not stop the existing process. If you observe this behavior, you can set logrotate's prerotate script to get the pid of the running fastcgidispatch process, it should then be possible to stop the old fastcgidispatch process in the postrotate script, for more information see Logrotate.