awips2/cave/com.raytheon.viz.gfe/help/logFiles.html
root a02aeb236c Initial revision of AWIPS2 11.9.0-7p5
Former-commit-id: 06a8b51d6d [formerly 64fa9254b946eae7e61bbc3f513b7c3696c4f54f]
Former-commit-id: 9f19e3f712
2012-01-06 08:55:05 -06:00

649 lines
17 KiB
HTML

<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta content="text/html; charset=iso-8859-1"
http-equiv="Content-Type">
<meta
content="Mozilla/4.79 [en] (X11; U; Linux 2.4.18-27.7.xsmp i686) [Netscape]"
name="GENERATOR">
<title>LogFile Information</title>
</head>
<body bgcolor="#ffffff">
<h1>
logFile Information</h1>
April 21, 2006<br>
<br>
Table of Contents
<br>
<br>
<a href="#location">Location of LogFiles</a>
<br>
<a href="#logPref">Logging Preferences</a>
<br>
<a href="#cmdline">Setting Up Logging for Command Line Programs</a>
<br>
<hr width="100%">
<h2><a name="location"></a>Location of LogFiles</h2>
Logfiles are stored and automatically purged in the logfiles
directory.&nbsp;
This location is <i>release</i>/data/logfiles, typically
/awips/GFESuite/primary/data/logfiles
on the dx AWIPS-baselined systems, or /awips/GFESuite/data/logfiles on
the lx AWIPS-baselined systems. Under this directory is a date/time
stamped
directory in the form of yyyymmdd, such as 20020327 for March 27,
2002.&nbsp;
Within each date's directory are the logging files.
<p>The naming of each individual log file is dependent upon the start
up
script for that application.&nbsp; The following table shows the
program
name and log filename. The collective field indicates whether
subsequent
executions of the program go into individual files (non-collective) or
a single file (collective).
<br>
&nbsp;
<br>
&nbsp;
<table nosave="" border="1" width="100%">
<tbody>
<tr>
<td><b>Program Name</b></td>
<td><b>Logging File Name</b></td>
<td><b>Collective</b></td>
</tr>
<tr>
<td>configureTextProducts</td>
<td>configureTextProducts%P%H%T</td>
<td>no</td>
</tr>
<tr>
<td>coordConversion</td>
<td>coordConversion%P%H%T</td>
<td>no</td>
</tr>
<tr>
<td>dumpAT</td>
<td>dumpAT%P%H%T</td>
<td>no</td>
</tr>
<tr>
<td>getNotify</td>
<td>getNotify%P%H%T</td>
<td>no</td>
</tr>
<tr>
<td style="vertical-align: top;">ghETN<br>
</td>
<td style="vertical-align: top;">ghETN%P%H%T&nbsp; (Note: by
default, no logging occurs for this program)<br>
</td>
<td style="vertical-align: top;">no<br>
</td>
</tr>
<tr>
<td>ifpAG</td>
<td>ifpAG%P%H%T</td>
<td>no</td>
</tr>
<tr>
<td>ifpBreakAllLocks</td>
<td>ifpBreakAllLocks%P%H%T</td>
<td>no</td>
</tr>
<tr>
<td>ifpDFC</td>
<td>ifpDFC%P%H%T</td>
<td>no</td>
</tr>
<tr>
<td>ifpDFCArchive (archiveObs, archivePointFcst)<br>
</td>
<td>dfc-archiveObs_%H, dfc-archivePointFcst_%H</td>
<td>yes</td>
</tr>
<tr>
<td>ifpIMAGE</td>
<td>ifpIMAGE_%H</td>
<td>yes</td>
</tr>
<tr>
<td>ifpInit</td>
<td>ifpInit%P%H%T, when run from the command line, <i>moduleName</i>Init_%H
when run automatically from the ifpServer</td>
<td>no (command line), yes (from ifpServer)</td>
</tr>
<tr>
<td>ifpnetCDF</td>
<td>ifpnetCDF_%H</td>
<td>yes</td>
</tr>
<tr>
<td style="vertical-align: top;">ingestAT<br>
</td>
<td style="vertical-align: top;">ingestAT_%H<br>
</td>
<td style="vertical-align: top;">yes<br>
</td>
</tr>
<tr>
<td>iscExtract</td>
<td>iscExtract_%H</td>
<td>yes</td>
</tr>
<tr>
<td>iscInject</td>
<td>---none---</td>
<td>n/a</td>
</tr>
<tr>
<td>iscMosaic</td>
<td>iscMosaic_%H</td>
<td>yes</td>
</tr>
<tr>
<td>gfe (runGFE)</td>
<td>gfe%P%H%T</td>
<td>no</td>
</tr>
<tr>
<td style="vertical-align: top;">ghgMonitor<br>
</td>
<td style="vertical-align: top;">ghgMonitor%P%H%T</td>
<td style="vertical-align: top;">no<br>
</td>
</tr>
<tr>
<td>ifpServer (runIFPServer)</td>
<td>ifpServer%P%H%T</td>
<td>no</td>
</tr>
<tr>
<td>ifpServerStats</td>
<td>ifpServerStats%P%H%T</td>
<td>no</td>
</tr>
<tr>
<td>ifpServerText</td>
<td>ifpServerText%P%H%T</td>
<td>no</td>
</tr>
<tr>
<td style="vertical-align: top;">makeD2DFile<br>
</td>
<td style="vertical-align: top;">makeD2DFile%P%H%T</td>
<td style="vertical-align: top;">no<br>
</td>
</tr>
<tr>
<td>moveGFEData</td>
<td>moveGFEData%P%H%T</td>
<td>no</td>
</tr>
<tr>
<td>publishGFE</td>
<td>publishGFE%P%H%T</td>
<td>no</td>
</tr>
<tr>
<td style="vertical-align: top;">purgeAllGrids<br>
</td>
<td style="vertical-align: top;">purgeAllGrids%P%H%T<br>
</td>
<td style="vertical-align: top;">no<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">requestAT<br>
</td>
<td style="vertical-align: top;">requestAT_%H<br>
</td>
<td style="vertical-align: top;">yes<br>
</td>
</tr>
<tr>
<td>runIFPText</td>
<td>ifpText%P%H%T</td>
<td>no</td>
</tr>
<tr>
<td>runProcedure</td>
<td>procedure%P%H%T</td>
<td>no</td>
</tr>
<tr>
<td style="vertical-align: top;">sendAT<br>
</td>
<td style="vertical-align: top;">sendAT_%H<br>
</td>
<td style="vertical-align: top;">yes<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">sendGfeMessage<br>
</td>
<td style="vertical-align: top;">sendGfeMessage%P%H%T<br>
</td>
<td style="vertical-align: top;">no<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">VTECDecoder<br>
</td>
<td style="vertical-align: top;">VTECDecoder_%H<br>
</td>
<td style="vertical-align: top;">yes<br>
</td>
</tr>
</tbody>
</table>
</p>
<p>The "% modifiers" are replaced with actual values depending upon the
state of the system.&nbsp; Here is a complete list of modifiers:
<br>
&nbsp;
<table nosave="" border="1" width="100%">
<tbody>
<tr>
<td><b>Modifier</b></td>
<td><b>Meaning</b></td>
</tr>
<tr>
<td>%d</td>
<td>display being used, i.e., contents of the DISPLAY environment
variable</td>
</tr>
<tr>
<td>%D</td>
<td>Year Month Day date string. Identical to %Y%m%d for strftime
or yymmdd
format</td>
</tr>
<tr>
<td>%T</td>
<td>Hour Minute Second time string. Identical to "H%M%S for
strftime of
hhmmss format</td>
</tr>
<tr>
<td>%P</td>
<td>Process identification number</td>
</tr>
<tr>
<td>%N</td>
<td>Process name</td>
</tr>
<tr>
<td>%L</td>
<td>Logging directory (top-level) as defined by LOG_DIR
environment variable</td>
</tr>
<tr>
<td>%H</td>
<td>Hostname of machine</td>
</tr>
</tbody>
</table>
</p>
<p></p>
<hr width="100%">
<h2><a name="logPref"></a>Logging Preferences</h2>
Logging uses the AWIPS LogStream facility.&nbsp; Environment variables
are used to define the location/handling of the logfiles.&nbsp; These
environment
variables are automatically set for you with many of the GFESuite set
of
programs.&nbsp; Here is a summary:
<ul>
<li>LOG_DIR: top level directory for logging files</li>
<li>LOG_PREF: location of logging preferences files</li>
<li>LOG_FILE: definitive logging file names for non-collective logging</li>
<li>COLLECTIVE_FILE: definitive logging file names for collective
logging</li>
</ul>
GFESuite is set up with various logging preferences files.&nbsp; These
are located in release/etc/BASE/logPref/*.logPref, typically
/awips/GFESuite/primary/etc/BASE/logPref/*.logPref
on the AWIPS-baselined systems.
<p>The following table lists the logPref files and the programs that
use
them.&nbsp; Note that the program names and the script names which are
used to run the program may be different (for example, ifpServer is the
program name, but runIFPServer is the script that is used to start it):
<br>
&nbsp;
<br>
&nbsp;
<table nosave="" border="1" width="100%">
<tbody>
<tr>
<td><b>Logging Preference File</b></td>
<td><b>Programs Using the File</b></td>
</tr>
<tr>
<td>archiveObs.logPref</td>
<td>ifpDFCArchive (archiveObs)<br>
</td>
</tr>
<tr>
<td>archivePointFcst.logPref</td>
<td>ifpDFCArchive (archivePointFcst)<br>
</td>
</tr>
<tr>
<td>configureTextProducts.logPref</td>
<td>configureTextProducts<br>
</td>
</tr>
<tr>
<td>coordConversion.logPref</td>
<td>coordConversion<br>
</td>
</tr>
<tr>
<td>dumpAT.logPref</td>
<td>dumpAT<br>
</td>
</tr>
<tr>
<td>getNotify.logPref</td>
<td>getNotify<br>
</td>
</tr>
<tr>
<td>gfe.logPref</td>
<td>runGFE (GFE)<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">ghETN.logPref<br>
</td>
<td style="vertical-align: top;">ghETN<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">ghgMonitor.logPref<br>
</td>
<td style="vertical-align: top;">ghgMonitor<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">ifpAG.logPref<br>
</td>
<td style="vertical-align: top;">ifpAG<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">ifpBreakAllLocks.logPref<br>
</td>
<td style="vertical-align: top;">ifpBreakAllLocks<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">ifpDFC.logPref<br>
</td>
<td style="vertical-align: top;">ifpDFC<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">ifpIMAGE.logPref<br>
</td>
<td style="vertical-align: top;">ifpIMAGE<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">ifpInit.logPref<br>
</td>
<td style="vertical-align: top;">ifpInit<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">ifpnetCDF.logPref<br>
</td>
<td style="vertical-align: top;">ifpnetCDF<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">ifpServer.logPref<br>
</td>
<td style="vertical-align: top;">runIFPServer (ifpServer)<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">ifpServerStats.logPref<br>
</td>
<td style="vertical-align: top;">ifpServerStats<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">ifpServerText.logPref<br>
</td>
<td style="vertical-align: top;">ifpServerText<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">ingestAT.logPref<br>
</td>
<td style="vertical-align: top;">ingestAT<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">iscExtract.logPref<br>
</td>
<td style="vertical-align: top;">iscExtract<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">iscMosaic.logPref<br>
</td>
<td style="vertical-align: top;">iscMosaic<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">makeD2DFile.logPref<br>
</td>
<td style="vertical-align: top;">makeD2DFile<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">moveGFEData.logPref<br>
</td>
<td style="vertical-align: top;">moveGFEData<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">publishGFE.logPref<br>
</td>
<td style="vertical-align: top;">publishGFE<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">purgeAllGrids.logPref<br>
</td>
<td style="vertical-align: top;">purgeAllGrids<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">requestAT.logPref<br>
</td>
<td style="vertical-align: top;">requestAT<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">runIFPText.logPref<br>
</td>
<td style="vertical-align: top;">runIFPText<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">runProcedure.logPref<br>
</td>
<td style="vertical-align: top;">runProcedure<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">sendAT.logPref<br>
</td>
<td style="vertical-align: top;">sendAT<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">sendGfeMessage.logPref<br>
</td>
<td style="vertical-align: top;">sendGfeMessage<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">setupTextEA.logPref<br>
</td>
<td style="vertical-align: top;">setupTextEA<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;">VTECDecoder.logPref<br>
</td>
<td style="vertical-align: top;">VTECDecoder<br>
</td>
</tr>
</tbody>
</table>
</p>
<p>Here is an example of a logging preferences file:
</p>
<p><tt>#Process&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Src&nbsp;&nbsp;&nbsp;&nbsp;
Sink&nbsp;&nbsp;&nbsp; Category</tt>
<br>
<tt>#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
File</tt>
<br>
<tt>#-----------------------------------------</tt>
<br>
<tt>all&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
all&nbsp;&nbsp;&nbsp;&nbsp; file&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
all
= on</tt>
<br>
<tt>all&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
all&nbsp;&nbsp;&nbsp;&nbsp; file&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
debug
= off</tt>
<br>
<tt>all&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
all&nbsp;&nbsp;&nbsp;&nbsp; file&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
verbose
= off</tt>
<br>
<tt>all&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
all&nbsp;&nbsp;&nbsp;&nbsp; file&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
use
= off</tt>
<br>
<tt>all&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
all&nbsp;&nbsp;&nbsp;&nbsp;
tty&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
all = off&nbsp; # nothing goes to a terminal</tt>
<br>
<tt>all&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
all&nbsp;&nbsp;&nbsp;&nbsp; collective all = on</tt>
<br>
<tt>all&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
all&nbsp;&nbsp;&nbsp;&nbsp; collective debug = off</tt>
<br>
<tt>all&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
all&nbsp;&nbsp;&nbsp;&nbsp; collective verbose = off</tt>
</p>
<p><tt># recommended to see hourly statistics</tt>
<br>
<tt>all&nbsp;&nbsp; ifpServer.C file verbose = on</tt>
<br>
<tt>all&nbsp;&nbsp; RunInit.C file verbose = on</tt>
<br>
<tt>all&nbsp;&nbsp; all&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
all&nbsp;&nbsp;&nbsp;
use = off</tt>
</p>
<p><tt># Prefixes</tt>
<br>
<tt>all&nbsp;&nbsp; timeStamp =
on&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# time stamps on</tt>
<br>
<tt>#all&nbsp;&nbsp; processName = off&nbsp;&nbsp;&nbsp;&nbsp; #
process
name off</tt>
<br>
<tt>#all&nbsp;&nbsp; processID =
on&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# process id off</tt>
<br>
<tt>all&nbsp;&nbsp; fileName =
on&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# filenames wanted</tt>
<br>
<tt>all&nbsp;&nbsp; lineNo =
on&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# line numbers wanted</tt>
</p>
<p>The first section of the file is a list of process, source file,
sinks
(file, tty, collective), and a category (all, debug, verbose, event,
use,
problem, fatal) with an "on" or "off" appended.&nbsp; The file is
parsed
sequentially, thus turning a category off first and then turning it
back
on in a later line will result with the category being on.
</p>
<p>Logging can be enabled/disabled on a per-process basis and filename
basis.
</p>
<p>The second section defines prefixes.&nbsp; The format of the log
files
are controlled through this set of definitions.&nbsp; The time stamps,
process name and id, filename and line number may all be enabled or
disabled
through the logging preferences file.
</p>
<p>Be careful if changing the logging preferences files.&nbsp; These
files
are not supported through the <a href="baseSiteUserConcept.html">BASE,
SITE, USER concep</a>t and changes will be overwritten with the next
GFESuite
upgrade.
</p>
<p></p>
<hr width="100%">
<h2><a name="cmdline"></a>Setting up Logging for Command Line Programs</h2>
If you run a program that doesn't use one of the GFESuite-supplied
startup
scripts, the logging will not be enabled (by default) and hence you
will
not be able to tell if problems occurred during the execution of the
program.
<p>You can set up logging for command line programs by setting the
following
environment variables:
</p>
<ul>
<li>LOG_PREF - points to the logging preferences files (you can use
the
gfe.logPref
if desired)</li>
<li>LOG_DIR - points to the place where logging will occur (normally
you
can
point it to <i>release</i>/data/logfiles, or
/awips/GFESuite/primary/data/logfiles
and then the server will purge the log files for you)</li>
<li>LOG_FILE - not normally needed, if not supplied, then the logging
filename
will be processname_pid_host_time within the .../logfiles/yyyymmdd/
directories.</li>
<li>COLLECTIVE_FILE - not normally needed.&nbsp; Controls the logging
filename
in a similar manner to the LOG_FILE but for collective sinks.</li>
</ul>
</body>
</html>