# Genesys Quality Management Suite 8.1.520 : Screen Capture Client Logging Setup

This new feature is not configurable in Call Recording Web UI. It is only configurable by editing the screenrec.xml file directly.

## General Principles

Generally all operation modes of Screen Capture Client have two different mechanisms for setting up logging:

- Clients first obtain logging settings from a registry or command line - this enables them to set up logging locally and to debug connection problems.
- As soon as a client connects to a server, its values are overridden by the server's settings - this allows us to remotely control the logging policy. These settings are sent on each client connection, and then every time the settings are changed.

Neither of the methods has a higher priority over the other, so the last setting is effective. This means you can change settings in the registry while a client is running and unless it receives other settings from the server, registry settings will be applied.

By default, logging is turned off (logLevel = 0) in server settings for all clients, so as not to fill up disk space. On the client side, the INFO level is set in registry by default, but logs should disappear as soon as the service connects to the server.

### Log files format

Screen Capture Client processes use a naming schema consisting of the date in iso format and an agent name:

    screenrec_yyyy-mm-dd_agentName.log

Service processes leave out the agent name part:

    screenrec_yyyy-mm-dd.log

Logs are rotated each day at midnight. If Screen Capture is not running at midnight, the log will be rotated when the client next starts.

Icon

Please note that log rotation mechanism should correctly handle shifts forward in time (user sets another time in windows, NTP server problems etc.) but not backwards.

## Logging Setup on a Server

Screen Capture client logging can be configured remotely by setting up items in a configuration file on the server. Settings are made in `clientLogging` group in `screenrec.xml.` For example:

    <EqualGroup .. name="server">
        ... other screenrec settings ...
        <Group name="clientLogging">
            <Value name="logLevel">0</Value>
            <Value name="keepLogDays">0</Value>
            <EqualGroup name="override">
                <Value name="enabled">true</Value>
                <Value name="host">192.168.2.1</Value>
                <Value name="logLevel">3</Value>
                <Value name="keepLogDays">10</Value>
            </EqualGroup>
        </Group>
        ...
    </EqualGroup>

Icon

In case the option`enabled` in the `override` section is missing, it is considered as if there was a`true` value present.

This configuration completely turns off logging for all clients except clients connecting from IP 192.168.2.1, which will have a log level of 3 and will keep logs for 10 days.

Value `logLevel i`n the `clientLogging` group is a global logging level applied to all clients which are not overridden. Then you can specify one or more `override` EqualGroups. The Single override section overrides logging settings for aspecified clients. There are currently 2 values:

- `host` - either IP address or host name (using a fully qualified host name is recommended)
- `logLevel` - log level applied for this host
- `keepLogDays` - how many days back should be logs kept

Icon

Please note that if you change ANY settings on the server, the whole configuration file is reloaded and new settings are sent to ALL applicable clients. Any local settings changes in the registry will then be overridden.

Only clients, which are mentioned in the `override` section and have the `enabled` option set to `false`, will not be updated.

Log level values are specified as an integer number in the 0-5 range with the following meanings:

Logging Levels

Value | Name
--- | ---
0 | No logging
1 | ERROR
2 | WARNING
3 | INFO
4 | DEBUG
5 | TRACE

Icon

Detailed settings behaviour:

If logLevel is negative, the client will use settings written in registry
If logLevel is greater or equal to 6, the client will use logLevel TRACE (5)
If logLevel is equal to 0, it will log nothing NONE (0)

If keepLogDays is less than or equal to 0, it will not keep the log files (only the current day during initialization is created and kept till rotation at midnight)
If keepLogDays is greater than 0, it will keep the logs for the specified time

## Logging Setup on Clients

### Screen Capture Service

Settings for Screen Capture service is stored in `HKEY_LOCAL_MACHINE/SOFTWARE/ZOOM International/ZOOM Screen Capture Capture Client` (GQM version). Service stores the following settings related to logging into the registry:

Value | Default value | Registry item
--- | --- | ---
Log files directory | default user's temporary directory (configurable during installation/setup) | log_dir
Log level | 3 / 4 (selectable during installation/setup - 3 (INFO) is default) | log_level

Both of these settings are configurable in Screen Capture setup during installation, and you can modify these settings during runtime. Changes will immediately be put into effect. Log level settings are only effective if the service has not yet been connected to the server (see General Principles chapter).

### Standalone and LiveOPs Version

Logging settings are supplied by command line arguments:

Parameter | Default Value
--- | ---
-log_path | Default user's temporary directory (configurable in setup)
-log_level | 0