previous next

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:

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

config.LoggingTemplates

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

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

<VAR Enabled="boolean"/>

Possible Values

Example

<VAR Enabled="1"/>

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

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.

For More Information: see "VAR: AddFormat".

Tag Syntax

<VAR Format="string"/>

Possible Values

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

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:

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

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

<VAR Type="string"/>

Possible Values

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

<VAR Type="string"/>

Possible Values

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

<VAR Type="string"/>

Possible Values

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.

Tip: When directing output to a local file, you can roll over the log file based on the log size and/or a specified amount of elapsed time. For more information, see sections "Local File Output with Size Based Log Rolling" and "Local File Output with Time Based Log Rolling".

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.

For More Information: A local file can be rolled over based on a combination of maximum log size and elapsed time settings. See sections "Local File" and "Local File Output with Time Based Log Rolling".

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.

For More Information: A local file can be rolled over based on a combination of elapsed time and maximum log size settings. See sections "Local File" and "Local File Output with Size Based Log Rolling".

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

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

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

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

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

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>


RealNetworks, Inc. ©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.
previous next