Chapter 3: Custom Logging
Custom logging is an enhancement to the logging and monitoring
capabilities of Helix Universal Proxy that supports gathering
information about Helix Universal Proxy's registry. Developers can
specify which registry variables to monitor and provide instructions
for formatting the output by using custom logging templates.
Multiple templates can exist in the proxy configuration file and
each template can direct output to more than one destination,
including standard error, a TCP or UDP socket, or piped to another
program, amoung other options.
You use template types to determine when to monitor Helix
Universal Proxy functions, and what output to generate:
- IntervalWhen you set up an interval template, Helix Administrator logs the settings of selected Helix Universal Proxy registry variables at a constant interval. Interval templates define an output interval that defines the number of hours, minutes, and seconds that elapse before the next log output occurs. Refer to the section "Output Intervals".
- Periodic / Watched VariablesAll registry variables are monitored and output is generated according to defined intervals: periodically, within a maximum amount of time, or after a minimum amount of time. In addition, whenever a watched variable changes, output is generated according to the defined output intervals. For more information, see sections "Watched and Wildcard Variables" and "Output Intervals".
- Wildcard / Wildcard VariablesOnly registry variables represented by wildcards are monitored for change. Logging information is only output when a change occurs; periodic output intervals are ignored. For more information, see section "Watched and Wildcard Variables".
For each template, to generate output you'll need to do the following
Dependencies
The custom logging feature is an option for monitoring Helix Universal Proxy
information. It has no dependencies on any other lists or variables in the
proxy configuration file. However, when performing custom logging of client
statistics, certain variables must be included. For more information, see the
section "Interdependencies".
Interdependencies
In Helix Universal Proxy 9, client statistics can be sent in specific intervals,
rather than only upon client disconnect. When the StatsInterval registry
variable is set to any value greater than 0, the ability to periodically gather
client statistics is enabled. The value of StatsInterval is the periodic rate at
which client statistics are returned to Helix Universal Proxy.
When StatsInterval is greater than 0 and LoggingStyle is between 1 and 5,
custom logging can be used to gather the client statistics. By setting the
wildcard watch variable VAR: WatchRoot to Client.*.Session.*.LogStats in the
logging template, the statistics of all connected clients can be monitored in
real time. For more information about monitoring client statistics, see the
Helix Universal Proxy Administration Guide.
Samples
The Helix Universal Proxy configuration file contains all available templates
currently loaded in the Helix Universal Proxy. Each logging template has it's
own information gathering method, unique formatting instructions, and
output destinations. Because multiple templates can be present in the
configuration file and more than one logging can be enabled at the same time,
multiple logging sessions can be simultaneously active.
The following example demonstrates how the templates are listed in the
configuration file.
<!-- CUSTOM LOGGING TEMPLATES --> <LIST Name="LoggingTemplates"> <!-- LOGGING TEMPLATE 1 --> <LIST Name="Periodic Logging to Standard Out"> ...other variables that define logging session 1... </LIST> <!-- LOGGING TEMPLATE 2 -->
<LIST Name="Periodic Logging Using Size Based Log Rolling">
...other variables that define logging session 2... </LIST> <!-- LOGGING TEMPLATE 3 -->
<LIST Name="Periodic Logging of Load State Through TCP">
...other variables that define logging session 3... </LIST> <!-- LOGGING TEMPLATE 4 -->
<LIST Name="Wildcard Logging to UDP MultiCast Socket">
...other variables that define logging session 4... </LIST> </LIST>
|
Each logging session is described in more detail in the following sections.
Periodic Logging to Standard Out
Logging Session 1 directs output to standard out every 5 seconds, regardless
of whether there have been changes to registry variable values.
Sample
<!-- LOGGING TEMPLATE 1 --> <LIST Name="Periodic Logging to Standard Out"> <VAR Description="Periodically sends logging output (every 5 seconds) to standard out, containing the current number of RTSP clients, PNA clients, HTTP clients and total connected clients."/> <VAR Enabled="1"/> <VAR Format="RTSP Clients = %Server.RTSPClientCount%, PNA Clients = %Server.PNAClientCount%, HTTP Clients = %Server.HTTPClientCount%, Total Clients = %Server.ClientCount%\r\n"/> <VAR Interval="00:00:05"/> <LIST Name = "Outputs"> <LIST Name="Direct Output to Standard Out"> <VAR Type="StdOut"/> </LIST> </LIST> </LIST>
|
Output
Directed to standard out:
RTSP Clients = 5, PNA Clients = 10, HTTP Clients = 100, Total Clients = 115
|
RTSP Clients = 5, PNA Clients = 12, HTTP Clients = 83, Total Clients = 100
|
RTSP Clients = 4, PNA Clients = 9, HTTP Clients = 77, Total Clients = 90
|
Periodic Logging Using Size Based Log Rolling
Logging Session 2 directs output to a local file at least every 30 minutes,
regardless of whether there have been changes to registry variables' values. In
addition, the size of the local file is monitored and when it reaches 5 MB, the
logging information is rolled over into a new log file. Every log file name
consists of the text provided in the template, as well as date and time
information supplied by the Helix Universal Proxy. The format of the
appended information consists of year, month, day, hour, minutes, and
seconds (yyyymmddhhmmss).
Sample
<!-- LOGGING TEMPLATE 2 --> <LIST Name="Periodic Logging Using Size Based Log Rolling"> <VAR Description="Periodically outputs (at least every 30 minutes a string to a local file, containing the current date, time, bandwidth usage, memory usage, and % of CPU utilized by the Helix Universal Proxy processes. Log is rolled whenever it's > 5 MB."/> <VAR Enabled="1"/> <VAR Format="Server Resources at %Time%\r \t Bandwidth = %Server.BandwidthOutput% bps\r \t Memory Usage = %Server.BytesMemoryUsage% bytes\r \t CPU Percentage = %Server.PercentCPUUsage%\r\n"/> <!-- Report the Log at least every 30 minutes --> <VAR MaxInterval="00:30:00"/> <LIST Name = "Outputs"> <LIST Name="Size Rolled Local File Ouput"> <VAR Type="File"/> <VAR Filename="Resources.log"/> <VAR LogRollSize="5"/> </LIST> </LIST> </LIST>
|
Output
Contents of local file, Resources.log.2001219103246:
|
Server Resources at 10:30:00 Bandwidth = 45367 bps Memory Usage = 19876394 bytes CPU Percentage = 34
|
Server Resources at 11:00:00 Bandwidth = 28744 bps Memory Usage = 5443152 bytes CPU Percentage = 17
|
Server Resources at 11:30:00 Bandwidth = 111734 bps Memory Usage = 28652788 bytes CPU Percentage = 46
|
Periodic Logging of Load State Through TCP
Logging Session 3 outputs to a local file and to a destination machine
through a TCP socket, whenever a watched variable, Server.LoadState, changes.
Because no output interval variables are specified, output is only generated
when the LoadState variable never changes.
Sample
<!-- LOGGING TEMPLATE 3 --> <LIST Name="Periodic Logging of Load State Through TCP"> <VAR Description="Outputs when LoadState watched variable changes. Outputs a string to a local file and to a machine via a TCP socket, containing the current load state, bandwidth usage, memory usage, and % of CPU utilized by the Helix Universal Proxy processes."/> <VAR Enabled="1"/> <VAR Format="Load State = %Server.LoadState% \r Bandwidth = %Server.BandwidthOutput% bps \r Memory Usage = %Server.BytesMemoryUsage% bytes \r CPU Percentage = %Server.PercentCPUUsage%\r\n"/> <LIST Name = "Watches"> <VAR LoadState="Server.LoadState"/> </LIST> <LIST Name = "Outputs"> <LIST Name="Local File Output"> <VAR Type="File"/> <VAR Filename="LoadState.log"/> </LIST> <LIST Name="TCP Socket Output"> <VAR Type="TCP"/> <VAR Dest="statscollection.real.com"/> <VAR Port="3737"/> </LIST> </LIST> </LIST>
|
Output
Contents of local file, LoadState.log, and the information sent to the destination machine through the TCP socket:
|
Load State = normal Bandwidth = 45367 bps Memory Usage = 19876394 bytes CPU Percentage = 54
|
Load State = low Bandwidth = 28744 bps Memory Usage = 5443152 bytes CPU Percentage = 17
|
Load State = normal Bandwidth = 111734 bps Memory Usage = 28652788 bytes CPU Percentage = 46
|
Wildcard Logging to UDP MultiCast Socket
Logging Session 4 watches all variables that exist lower in the registry than the
specified WatchRoot of Client.*. Definitions for the Add/Mod/DelFormat string
variables enable output to be generated whenever a watched wildcard variable
is added to, removed from or modified within the registry. If no wildcard
variables ever change, no output will be generated.
Sample
<!-- LOGGING TEMPLATE 4 --> <LIST Name="Wildcard Logging to UDP MultiCast Socket"> <VAR Description="Outputs when any watched wildcard variable changes. Outputs string info to a machine via a UDP MultiCast socket."/> <VAR Enabled="1"/> <VAR AddFormat="Client %Client.*.ConnID% connected at %Time%\r \t Address: %Client.*.Addr% \r \t Port: %Client.*.Port% \r \t Protocol: %Client.*.Protocol% \r\n"/> <VAR ModFormat="Client %Client.*.ConnID% modified at %Time% \r\n"/> <VAR DelFormat="Client %Client.*.ConnID% tore down at %Time% \r\n"/> <LIST Name = "Watches"> <VAR WatchRoot="Client.*"/> </LIST> <LIST Name = "Outputs"> <LIST Name="Direct Output Through UDP MultiCast Socket"> <VAR Type="UDPMCast"/> <VAR Dest="multicast.real.com"/> <VAR Port="4326"/> <VAR TTL="16"/> </LIST> </LIST> </LIST>
|
Output
Information sent through the UDP MultiCast Socket:
|
Client 4 connected at 09:00:43 Address: 123.435.111.907 Port: 5401 Protocol: RTSP
|
Client 8 modified at 09:20:08
|
Client 1 tore down at 09:31:26
|
Logging Templates
Custom logging is implemented by modifying the XML variables in a logging
template within the Helix Universal Proxy configuration file, rmproxy.cfg.
The variables dictate exactly what information to log, define the proper
formatting for each logging session, and specify the destination of the logging
information. When the configuration file is loaded by Helix Universal Proxy, a
logging session is created according to the specifications of the template.
(More than one logging template can be present in the configuration file. You
can use several templates at a time.)
LIST: LoggingTemplates
This is the primary list tag that is used to identify the presence of logging
templates in the configuration file. Multiple logging templates can be added
to the LoggingTemplates list.
<LIST Name="LoggingTemplates"> ... additional logging template information... </LIST>
|
Registry Value
Example
<LIST Name="LoggingTemplates"> ... </LIST>
|
LIST: Logging Template Name
This LIST defines a logging template. Specify any name for the list, as long as it
is unique and no longer than 64 bytes.
<LIST Name="LoggingTemplates"> <LIST Name="Logging Template Name"> ...other variables that define the logging template... </LIST> ... additional logging template information... </LIST>
|
Registry Value
config.LoggingTemplates.string
|
Example
<LIST Name="Logging Session 1"> ... </LIST>
|
VAR: Description
(Optional) Use Description to provide contextual information about each
logging template. A maximum of 512 bytes of information may be included.
Tag Syntax
<VAR Description="string"/>
|
Possible Values
string - up to 512 bytes of information about the template
Example
<VAR Description="This is an example of a template description."/>
|
On-the-Fly Logging
Helix Universal Proxy provides the ability to add, remove, enable or disable a
logging template at any time, without requiring a restart of the Helix
Universal Proxy. A logging template can be enabled or disabled for use by
modifying the value of the Enabled variable in the configuration file. Helix
Universal Proxy immediately executes the variable change, without disrupting
other active logging sessions.
VAR: Enabled
(Optional) Use Enabled to enable use of this logging template. When this
variable is not defined in a logging template, it is created by the plug-in and by
default, set to 1.
Tag Syntax
Possible Values
0 - template disabled
1 - template enabled
Example
Watched and Wildcard Variables
Specific Helix Universal Proxy registry variables may be monitored, or watched
for change when they are named in a list in the logging template. When the
value of any watched variable changes, the logging system executes the other
directives in the template, including generating any output.
In addition to monitoring specifically named variables, it's also possible to
monitor all variables that exist on the same level in the registry, without
naming each variable individually. Variables that exist on the same level can be
represented by a wildcard `*'. Watched variables named in this manner are
called wildcard variables.
In order to use wildcard variables, the WatchRoot variable must be defined to
specify the root level for reporting variables represented by wildcards. The root
level is the highest level variable in the registry that is monitored for change.
Variables lower than the root level are monitored if they are specifically named
or exist at a level represented by a wildcard.
The presence of the WatchRoot variable in the template indicates to the plug-in
that session logging is set up.
LIST: Watches
The Watches list contains the names of specific Helix Universal Proxy registry
variables that should be monitored for change. This list is optional in watch
temlate logging and ignored in session logging.
 |
Warning!
Variable definitions in the Watches list may not
contain wildcards. To specify variables for monitoring using
wildcards, define the WatchRoot variable, thus setting up
session logging.
|
<LIST Name="LoggingTemplates"> <LIST Name="Logging Session 1">
<LIST Name="Watches"> ...specific names of the registry variables to monitor... </LIST> ...other variables that define the logging template... </LIST> </LIST>
|
Registry Value
config.LoggingTemplates.string.Watches
|
Example
<LIST Name="Watches"> <VAR LoadState="Server.LoadState"/>
...specific names of other registry variables to monitor...
</LIST>
|
VAR: WatchRoot
Use WatchRoot to define the root level for reporting wildcard variables and
thus, setting up session logging. The root level is the highest level variable in
the registry that is monitored for change. Variables lower than the root level
are monitored if they are specifically named or exist at a level represented by a
wildcard.
 |
Warning!
In an interval-type template, the WatchRoot variable is
ignored. Variables cannot be specified using wildcards, but are
monitored by including them in the Watcheslist.
|
Tag Syntax
<VAR WatchRoot="Root Level"/>
|
Possible Values
Root Level.* - any variable in the registry followed by any combination of specifically named registry variables lower in the hierarchy, and wildcards
Example
<VAR WatchRoot="Client.*"/>
- or -
<VAR WatchRoot="Client.*.Session.*"/>
|
Format Strings
Helix Universal Proxy uses format strings to output information gathered
about the registry. Each format string contains text, the name of a registry
variable, and formatting instructions. Helix Universal Proxy searches for the
value of the variable in the registry, inserts the value into the text string, and
formats the output using the specified instructions.
When you're using either interval or session type temlates, basic output can be
generated using the Format variable. In session type logging only, the AddFormat,
and DelFormat variables can also be used to generate output whenever a
watched wildcard variable is added to, or deleted from the registry.
 |
Warning!
In both interval and session logging, at least one
format string variable must be defined in each template,
otherwise, no output will be generated for that logging session.
|
VAR: Format
The Format variable must be specified to output text strings when interval-type
logging is in effect, otherwise, nothing will be output. In session logging, this
variable must be specified in order to generate output if no other format
string variables are defined.
Tag Syntax
Possible Values
- text - any text string(s) specified outside `%' argument delimiters
%registry variable% - any registry variable name specified inside `%' argument delimiters
When session logging is in effect, the name can be defined in the following ways:
- prefix the name with a wildcard argument delimiter '#' to specify that the variable is a child of the wildcard root,
WatchRoot
- fully qualified name of a registry variable that is a child of the wildcard root or a variable lower in the registry hierarchy
Date, Time, Hour, Min, Sec - special instructions defined within `%' argument delimiters to output current date and time information:
Date - date (mm/dd/yy)
Time - time in hh:mm:ss (24 hour clock)
Hour - hour past midnight (00 - 23).
Min - minutes past the current hour (00 - 59)
Sec - seconds past the current minute (00 - 59)
\n, \r, \t - any new line, carriage return, or tab space escape characters specified outside the `%' argument delimiters
- any combination of the above
Example - Interval-Type Logging
<VAR Format="Client Count: %Server.ClientCount%\r\n"/>
|
Example - Session-Type Logging
<VAR WatchRoot="Client.*"/> ... <VAR Format="Client ID: %Client.*.ConnID%\r\n"/>
- or -
<VAR Format="Client ID: %#ConnID%\r\n"/>
|
VAR: AddFormat
VAR: DelFormat
(Optional) In session type logging only, the Add/DelFormat variables can be used
to generate output whenever a watched wildcard variable is added to, deleted
from, or modified within the registry. When a watched wildcard variable is
added, modified, or deleted, and the appropriate Add/DelFormat string isn't
been defined in the template, the plug-in checks for the presence of the VAR:
Format string. If a Format string has not been defined, nothing is output.
 |
Note:
The Add/DelFormat variables are ignored when interval-
type logging is in effect.
|
Tag Syntax
<VAR AddFormat="string"/> <VAR DelFormat="string"/>
|
Possible Values
- text - any text string(s) specified outside the `%' argument delimiters
%registry variable% - any registry variable name specified inside `%' argument delimiters, where the name can be defined in the following ways:
- prefix the name with a wildcard argument delimiter '#' to specify that the variable is a child of the wildcard root,
WatchRoot
- fully qualified name of a registry variable that is a child of the wildcard root or a variable lower in the registry hierarchy
Date, Time, Hour, Min, Sec - special instructions defined within `%' argument delimiters to output current date and time information:
Date - date (mm/dd/yy)
Time - time in hh:mm:ss (24 hour clock)
Hour - hour past midnight (00 - 23).
Min - minutes past the current hour (00 - 59)
Sec - seconds past the current minute (00 - 59)
\n, \r, \t - any new line, carriage return, or tab space escape characters specified outside the `%' argument delimiters
- any combination of the above
Example
<VAR AddFormat="Client %Client.*.ConnID% connected at %Time%"/> <VAR ModFormat="Client %#ConnID% was modified."/> <VAR DelFormat="Client %Client.*.ConnID% tore down.\r\n"/>
|
Output Intervals
The output interval variables can be used to specify when the log report
should be generated:
VAR: Interval - The log is periodically reported after every Interval time passes.
VAR: MinInterval - The log is not reported unless watch variables have been set. When a watched variable changes, the log is immediately reported if the MinInterval time has passed since the last report was generated, or reported once the MinInterval time passes.
VAR: MaxInterval - The log is periodically reported within the specified amount of MaxInterval time. When a watched variable changes, the log is immediately reported.
Use of the output interval variables is optional. If none of the output interval
variables are defined, the log is not reported unless watch variables have been
set. When a watched variable changes, the log is immediately reported.
 |
Note:
The output interval variables are ignored when the
WatchRoot variable has been defined, which sets up session
logging.
|
The following table describes the log reporting behavior when more than one
interval variable you define.
Log Reporting Behavior for Combinations of Defined Output Interval Variables
| Defined VARs |
Resulting Behavior |
Interval MinInterval |
The Interval variable is ignored. The log is not reported unless watch variables have been set. When a watched variable changes, the log is immediately reported if the MinInterval time has passed since the last report was generated, or reported once the MinInterval time passes. |
Interval MaxInterval |
The Interval variable is ignored. The log is periodically reported within the specified amount of MaxInterval time. When a watched variable changes, the log is immediately reported. |
MinInterval MaxInterval |
The log is periodically reported within the specified amount of MaxInterval time. When a watched variable changes, the log is immediately reported if the MinInterval time has passed since the last report was generated, or reported once the MinInterval time passes. |
| All |
The Interval variable is ignored. The log is periodically reported within the specified amount of MaxInterval time. When a watched variable changes, the log is immediately reported if the MinInterval time has passed since the last report was generated, or reported once the MinInterval time passes. |
VAR: Interval
VAR: MaxInterval
VAR: MinInterval
The output interval variables can be used to specify when the log report
should be generated. When a single integer is specified, the output interval
time is considered to be in milliseconds. These variables are ignored when the
WatchRoot variable has been defined.
Tag Syntax
<VAR Interval="integer"/> <VAR MinInterval="integer"/> <VAR MaxInterval="integer"/>
|
Possible Values
##:##:## - ## hours, ## minutes and ## seconds, separated by colons
Example
<!-- Report the Log every 12 hours 30 minutes --> <VAR Interval="12:30:00"/>
- or -
<!-- If a watched variable has changed, Report the Log within 1 second --> <VAR MinInterval="00:00:01"/> <!-- Report the Log at least once an hour --> <VAR MaxInterval="01:00:00"/>
|
Output Types
Custom logging provides numerous output types for logging sessions,
including any local or mounted file system, standard error, standard output,
UNIX syslog, network socket, and Windows NT event log. In addition, a
logging session can direct output information to multiple destinations.
LIST: Outputs
The Outputs list contains a list of outputs, where each output is itself a list. The
actual destination of each output list is specified by the value of the Type
variable.
 |
Warning!
This list must be present in both interval and session-
type logging.
|
<LIST Name="LoggingTemplates"> <LIST Name="Logging Session 1">
<LIST Name="Outputs"> ...output lists... </LIST> ...other variables that define the logging template... </LIST> </LIST>
|
Registry Value
config.LoggingTemplates.string.Outputs
|
Example
<LIST Name="Outputs"> ... </LIST>
|
LIST: Output Type Name
This LIST defines an output type. Specify any name for the list, as long as it is
unique.
<LIST Name="LoggingTemplates"> <LIST Name="Logging Session 1">
<LIST Name="Outputs"> <LIST Name="Output Type Name"> ...other variables that define the output type... </LIST> ...other output lists... </LIST> ...other variables that define the logging template... </LIST> </LIST>
|
Registry Value
config.LoggingTemplates.string.Outputs.string
|
Example
<LIST Name="Local File Output"> ... </LIST>
|
VAR: Type
The value of the Type variable indicates where to direct the output of the
logging template. In addition to the Type variable, many output types require
other variables to support specific output processes. For more information,
review the related information section next to each output type when it is
supplied.
Tag Syntax
Possible Values
StdErr - standard error
StdOut - standard out
File - a local file; additional variables required, see "Local File"
TCP - directs output to a TCP socket; additional variables required, see "TCP Socket"
HTTPPost - does an HTTP post to a TCP socket; additional variables required, see "HTTP Post to TCP Socket"
TCPListen - listen on a TCP port for a connection and output to that port when a client connects; additional variables required, see "Listen on a TCP Port"
UDP - directs output to a UDP socket; additional variables required, see "UDP Socket"
UDPMCast - directs output through a UDP multicast socket; additional variables required, see "UDP Multicast"
NTEventLog - (Windows NT Only) directs output to the Windows NT event log; additional variables required, see "Windows NT Event Log"
Syslog - (UNIX Only) directs output to UNIX syslog; additional variables required, see "UNIX Syslog"
Pipe - (UNIX Only) pipes output to another program; additional variables required, see "Pipe to Another Program"
Standard Error
To direct output to standard error, specify StdErr as the value for the Type
variable. No other variables are required to send output to standard error.
Tag Syntax
Possible Values
StdErr - direct output to standard error
Example
<LIST Name="Outputs"> <LIST Name="Standard Error Output"> <VAR Type="StdErr"/> </LIST> </LIST>
|
Standard Out
To direct output to standard out, specify StdOut as the value for the Type
variable. No other variables are required to send output to standard out.
Tag Syntax
Possible Values
StdOut - direct output to standard out
Example
<LIST Name="Outputs"> <LIST Name="Standard Out Output"> <VAR Type="StdOut"/> </LIST> </LIST>
|
Local File
To direct output to a local file, specify File as the value for the Type variable.
The name of the local file must also be provided.
Tag Syntax
<VAR Type="string"/> <VAR Filename="string"/>
|
Possible Values
-
Type
-
File - direct output to a local file
-
Filename
-
Name - the name of the local file
Example
<LIST Name="Outputs"> <LIST Name="Local File Output"> <VAR Type="File"/> <VAR Filename="filename.log"/> </LIST> </LIST>
|
Local File Output with Size Based Log Rolling
Direct output to a local log file and roll over into a new log file when the
current log file reaches the maximum number of megabytes specified in
LogRollSize. The Type variable should be set to File and the name of the local
file must also be provided.
 |
Note:
Helix Universal Proxy automatically appends time and
date information to the filename of a rolled log.
|
Tag Syntax
<VAR Type="string"/> <VAR Filename="string"/> <VAR LogRollSize="integer"/>
|
Possible Values
-
Type
-
File - direct output to a local file
-
Filename
-
Name - the name of the local file
-
LogRollSize
-
# - maximum size in megabytes that a log can reach before the output information is rolled over into a new log; minimum is 1 MB
Example
<LIST Name="Outputs"> <!-- Roll Log When Size > 1048576 bytes -->
<LIST Name="Size Rolled Local File Output"> <VAR Type="File"/> <VAR Filename="filename.log"/> <VAR LogRollSize="5"/> </LIST> </LIST>
|
Local File Output with Time Based Log Rolling
Direct output to a local log file and create (roll over into) a new log file within
the amount of time specified in LogRollFrequency. The Type variable should be
set to File and the name of the local file must also be provided.
 |
Note:
Helix Universal Proxy automatically appends time and
date information to the filename of a rolled log.
|
Tag Syntax
<VAR Type="string"/> <VAR Filename="string"/> <VAR LogRollFrequency="integer"/>
|
Possible Values
-
Type
-
File - direct output to a local file
-
Filename
-
Name - the name of the local file
-
LogRollFrequency
-
##:##:## - (hh:mm:ss) maximum amount of time that can pass before the output information is rolled over into a new log
Example
<LIST Name="Outputs"> <!-- Roll Log Every Hour -->
<LIST Name="Time Rolled Local File Output"> <VAR Type="File"/> <VAR Filename="filename.log"/> <VAR LogRollFrequency="01:00:00"/> </LIST> </LIST>
|
TCP Socket
To direct output to a TCP socket, specify TCP as the value for the Type variable.
The destination and port of the TCP socket must also be provided.
Tag Syntax
<VAR Type="string"/> <VAR Dest="Destination"/> <VAR Port="integer"/>
|
Possible Values
-
Type
-
TCP - direct output to a TCP socket
-
Dest
Name - DNS hostname of the destination
###.###.###.### - IP address of the destination
-
Port
-
# - port number of the destination
Example
<LIST Name="Outputs"> <LIST Name="TCP Socket Output"> <VAR Type="TCP"/> <VAR Dest="123.123.123.123"/> <VAR Port="1234"/> </LIST> </LIST>
|
HTTP Post to TCP Socket
To do an HTTP post to a TCP socket, specify HTTPPost as the value for the Type
variable. The destination and port of the TCP socket must also be provided.
Tag Syntax
<VAR Type="string"/> <VAR Dest="Destination"/> <VAR Port="integer"/>
|
Possible Values
-
Type
-
HTTPPost - do an HTTP post to a TCP socket
-
Dest
Name - DNS hostname of the destination
###.###.###.###/filename - IP address of the destination and file
-
Port
-
# - port number of the destination
Example
<LIST Name="Outputs"> <LIST Name="HTTP Post to TCP Socket Output"> <VAR Type="HTTPPost"/> <VAR Dest="123.123.123.123/logrecv.cgi"/> <VAR Port="1234"/> </LIST> </LIST>
|
Listen on a TCP Port
To listen on a TCP socket for a connection and output to that port when a
client connects, specify TCPListen as the value for the Type variable. The port to
listen in on must also be provided.
Tag Syntax
<VAR Type="string"/> <VAR Port="integer"/>
|
Possible Values
-
Type
-
TCPListen - output to a TCP port when a client connects
-
Port
-
# - port number of the socket to listen in on
Example
<LIST Name="Outputs"> <LIST Name="TCP Listen Output"> <VAR Type="TCPListen"/> <VAR Port="1235"/> </LIST> </LIST>
|
UDP Socket
To direct output to a UDP socket, specify UDP as the value for the Type variable.
The destination and port of the UDP socket must also be provided.
Tag Syntax
<VAR Type="string"/> <VAR Dest="Destination"/> <VAR Port="integer"/>
|
Possible Values
-
Type
-
UDP - direct output to a UDP socket
-
Dest
Name - DNS hostname of the destination
###.###.###.### - IP address of the destination
-
Port
-
# - port number of the destination
Example
<LIST Name="Outputs"> <LIST Name="UDP Socket Output"> <VAR Type="UDP"/> <VAR Dest="123.123.123.124"/> <VAR Port="1236"/> </LIST> </LIST>
|
UDP Multicast
To direct output through a UDP multicast socket, specify UDPMCast as the
value for the Type variable. The destination and port of the UDP socket must
also be provided and the TTL (Time To Live) of the broadcast may be
provided, as necessary.
Tag Syntax
<VAR Type="string"/> <VAR Dest="Destination"/> <VAR Port="integer"/> <VAR TTL="integer"/>
|
Possible Values
-
Type
-
UDPMCast - direct UDP multicast output through a UDP socket
-
Dest
-
###.###.###.### - IP address of the destination
-
Port
-
# - port number of the destination
-
TTL (optional)
-
# - (time to live) maximum number of hops a broadcast is allowed to travel, default is 32
Example
<LIST Name="Outputs"> <LIST Name="UDP Socket Output"> <VAR Type="UDPMCast"/> <VAR Dest="239.123.123.128"/> <VAR Port="1238"/> <VAR TTL="32"/> </LIST> </LIST>
|
Windows NT Event Log
(Windows NT Only) To direct output to the Windows NT event log, specify
NTEventLog as the value for the Type variable. The error reporting priority level
to assign to the output information must also be provided.
Tag Syntax
<VAR Type="string"/> <VAR Priority="Priority Type"/>
|
Possible Values
-
Type
-
NTEventLog - direct output to the Windows NT event log
-
Priority
LOG_ERR - indicates that the output consists of error information
LOG_WARNING - indicates that the output consists of warning messages
LOG_INFO - indicates that the output contains general messages
Example
<LIST Name="Outputs"> <LIST Name="NT Event Log Output"> <VAR Type="NTEventLog"/> <VAR Priority="LOG_INFO"/> </LIST> </LIST>
|
UNIX Syslog
(UNIX Only) To direct output to the UNIX syslog, specify Syslog as the value
for the Type variable. The error reporting priority level to assign to the output
information, and an identifier for the output logging source must also be
provided.
Tag Syntax
<VAR Type="string"/> <VAR Ident="Output Identifier"/> <VAR Priority="Priority Type"/>
|
Possible Values
-
Type
-
Syslog - direct output to the UNIX syslog
-
Ident
-
Output Identifier - a string name identifier for the output
-
Priority
LOG_EMERG - indicates that the output consists of emergency information
LOG_ALERT - indicates that the output consists of alert messages
LOG_CRIT - indicates that the output contains critical messages
LOG_ERR - indicates that the output consists of error information
LOG_WARNING - indicates that the output consists of warning messages
LOG_NOTICE - indicates that the output contains notices
LOG_INFO - indicates that the output contains general messages
LOG_DEBUG - indicates that the output contains debug information
Example
<LIST Name="Outputs"> <LIST Name="UNIX SysLog Output"> <VAR Type="Syslog"/> <VAR Ident="Real Server Output"/> <VAR Priority="LOG_INFO"/> </LIST> </LIST>
|
Pipe to Another Program
(UNIX Only) To pipe output to another program, specify Pipe as the value for
the Type variable. The command that receives the piped output must also be
provided.
Tag Syntax
<VAR Type="string"/> <VAR Command="command"/>
|
Possible Values
-
Type
-
Pipe - pipe output to another program
-
Command
-
Command - the command that receives the piped output
Example
<LIST Name="Outputs"> <LIST Name="Piped Output"> <VAR Type="Pipe"/> <VAR Command="> /dev/lp"/> </LIST> </LIST>
|
|
©2002 RealNetworks, Inc.
For more information, visit RealNetworks
Click here if the Table of Contents frame is not visible at the left side of your screen.
|