Symbian
Symbian Developer Library

SYMBIAN OS V9.4

Feedback

[Index] [Previous] [Next]


How to Use the ULogger Configuration File

This topic provides details of the uloggerconfig.ini configuration file and which paths it can be stored in. It also explains the behaviour of the ULogger server when accessing the configurations, according to the configuration file availability in different drives with varying permissions:

[Top]


Default configuration file

The ULogger server looks for a configuration file in the following locations. If it cannot find a configuration file in the first instance, it looks in the next location, until it finds a configuration file. If it cannot find a configuration file the ULogger server will not run.

The ULogger server will look for a configuration file in these locations in order of preference:

  1. Public modifiable location: X:/ulogger/

  2. Default modifiable location: C:/private/10273881

  3. Default ROM build non-modifiable location: Z:\private\10273881

If the Trace Collector has not provided a configuration file, the ULogger server uses the configuration file that is in the C:/private/10273881 location, and if the file is missing, the ULogger server copies the file from z:/private/10273881 to c: in order to have a modifiable configuration file.

Note: In order for the Trace Collector to change any settings the configuration file used by the ULogger server must be modifiable.

The default configuration file is an ini file and has the following settings:

[ACTIVE_INPUT_CHANNEL] 
[ACTIVE_OUTPUT_CHANNEL] 
1=uloggerfileplugin
[PRIMARY_FILTERS]
 001=3
[SECONDARY_FILTERS] 
[TRACE]
buffer_mode=straight
buffer_size=1024
data_notification_size=64
secondary_global_filter=enable
[uloggerfileplugin]
max_size=10000000
output_path=c:\logs\Ulogger.log
[uloggerserialplugin]
output_port=1
[uloggerusbplugin]
mode = raw

[Top]


Public configuration file

A modifiable public configuration file can be created by Trace Collector by using the preceding format for their specific requirements. If the file is present the ULogger server uses it instead of the default configuration file. The Trace Collector should save the file in the following location:

X:/ulogger/uloggerconfig.ini

Where X is any public drive, but usually the MMU card.

The Trace Collector can make changes to this file by using command line tool or RULogger client interface.

Note: The configuration changes are registered only when the ULogger server is restarted, because its configuration is locked while tracing is in process.


Recommended settings for the ULogger configuration file

The following table details the contents of a ULogger configuration file:

Syntax parameter Description

[ACTIVE_Y_CHANNEL]

Y channel is stored in this section. Where, Y is either input or output channel. ULogger uses the plug-in name that is set as active in the [ACTIVE_Y_CHANNEL] section as a base to resolve which plug-in is to be loaded. This base value is matched against the default_data attribute in the plug-in resource file provided by the ECom framework to detect the correct implementation.

Important: This data is case sensitive and ECom framework does not detect the correct plug-in for implementation, if the case is not correctly matched. For this reason, while setting any plug-in, name of plug-in must be same as the value provided in the plug-in resource file.

[PRIMARY_FILTERS]

Primary filters are stored in this section. The maximum value for the primary filter is 255 kilobyte (it is a TUint8 value). If the Trace Collector manually set a value higher than that in the configuration file, the trace framework treats it as a corrupted file.

[SECONDARY_FILTERS]

Secondary filters are stored in this section. The maximum value for the secondary filter is 4294967296 kilobyte (it is a TUInt32 value). If the Trace Collector set a value higher than this, it will be interpreted as a 32 bit integer. So the Trace Collector has to ensure that the secondary filter is within the limits. In addition, there is a limit of 4096 that can be set at any one time of configuration.

[TRACE]

Trace settings are stored in this section. Following are the trace settings that a Trace Collector can use to configure based on the environment and requirements.

  1. buffer_mode=straight: Specifies the buffer mode. By default, it is set to straight. It is recommended to set to straightfor most efficient trace logging with minimal loss of data.

  2. buffer_size=1024: Specifies the buffer size. The default value is 1024 kilobytes.

  3. data_notification_size=512: Specifies the size of the data notification. the default value is 512 kilobytes.

    It is recommended that the Trace Collector consider the specifications of their system into account and investigate the optimal values for the buffer and data notification sizes for performance optimisation; such as, minimizing the amount of dropped traces.

    For example, on a Symbian reference platform, with OMAP 16xx of IT (H4); if the Trace Collector has enabled the primary filters 3, 4 or 5. Where 3, 4 or 5 are the filters for thread, CPU information and kernel performance tracing respectively, then the Trace Collector need to set the buffer size to 1024 kilobyte and the data notification size to 512 kilobyte to achieve low intrusion. This combination of primary filters is verbose. Otherwise, the overhead of the ULogger server flushing the buffer will be increased and result in an overall application slowdown.

  4. secondary_global_filter=enable: Used to enable or disable secondary filtering. For more information, see the Relationship between primary and secondary filters section in the Key concepts and terms.

[uloggerZplugin]

Plug-in settings are stored.

The format is key=value, where key is the name of the setting to be changed and value is its new configuration value.


ULogger command syntax

The following code contains the ULogger command syntax that is used to update the configuration file by:

/** ULogger command syntax

SYNOPSIS: ulogger [-rqtvhioH][-edl <config_options>...][-fsSoicbmn]...

DESCRIPTION:

ULogger groups the commands into execution and configuration commands where the options
 -rqtvhH belong to the former group and -edlbnmfsSoic to the latter.

Execution commands: -rqtvhH, require no other arguments.

Configuration commands are further divided into groups:

    -edl, these require one of the following options '-fsSoic' to be present, these will fail if too many or missing options are given.
    -fsSoicg, these will apply the arguments depending on the provided option -edl.
    
OPTIONS:

Execution commands:

-h        Quick help, displays a list of the options.
-H        The command syntax presented as a man page.
-version  The version of this tool.
-r        Start logging (Run)
-q        Stop logging (Quit)
-t        Restart (restarT) while logging, to update configurations
-o        List the active output plug-in.
-I        List the active input plug-in.
-v        Verbose mode, lists all results.
 
Otherwise, silent mode is assumed and only error codes will be returned
Configuration commands:

-e <-fsSoicgbmn options> ... Enable/set one of the options -fsSoicgbmn
-d <-fsSoicg options> ...    Disable/delete one of the options -fsSoicg
-l <-fsSoicgbmn options> ... List one of the options -fsSoicgbmn
-f [<filter> ...]            Enable/disable/list primary filter 0-255
-s [<filter> ...]            Enable/disable/list secondary filter 0-4294967295
-S                           Enable/disable/list secondary filtering. 
                             Enable this to filter on secondary filters. 
                             Disable to log all traces irrespective of secondary filter. 
                             By default filtering is enabled.
-o [<filename>]              Enable/disable an output
                             plug-in, list all output plugins
-I [<filename>]              Enable/disable an input
                             plug-in, list all input plugins
                             If <filename> is missing, the configuration will be applied 
                             to the active plug-in(s) for 
                             both the above options.
-c [<filename> <config> ...] Enable(set)/delete/list plug-in configurations.
                             If <filename> is missing, an error is returned as it is not 
                             possible to resolve whether the active
                             plug-in would be referring to the input
                             or the output plug-in.
                             The first argument in <config> must be the name of the configuration 
                             to be changed and any following arguments are treated as values of 
                             this   configuration.
                             The configuration keyword can not use any white characters 
                             (e.g. the space or tabulation key)
-b [<size> ...]              Buffer size,
                             1-1024 Kb rounded up to nearest page size, 4Kb.
-n [<size> ...]              Notification size,
                             0-1024 Kb rounded up to nearest page size, 4Kb.
-m [<mode> ...]              Buffer mode, 'circular' or 'straight'. Default is straight

[Top]


Corrupt or no configuration file

The ULogger server will not start, if any of the following is true:

So either the Trace Collector has to ensure that the public configuration file contains sensible data or the ROM creator has to ensure the default private file is included in the ROM build.

See also

How to run the ULogger server