|
Blogs
Part 1 - Introduction and basic settings Full article also available in SDN's Article section here. Modules and ComponentsThe OLAP Data Access logging allows the level of information logged to be controlled two levels: modules and components. A module corresponds roughly to a single dll. A component is a class within that dll. There are also non-dll based modules that correspond to transversal functions like memory management. Each module or component has an associated verbosity. This means that different levels of logging can be set for different modules and components. Verbosity settings are optional for all modules and components. If no verbosity is set for a particular module or component the parent setting will be used. For example, if a particular component doesn't have a verbosity set, the setting used will be the parent module's setting. If a particular module does not have a setting it will use the global setting. Finer grained verbosities take precedence over courser grained verbosities. So if there is a global, module and component setting, then the module setting takes precedence over the global, and the component setting takes precedence over the module setting. ModulesTo control logging using modules first a folder must be created under the root logging folder. The table below shows the folder for the different versions.
Under this folder, further folders need to be created: one for each module that needs a verbosity specified. The table below contains a non-exhaustive list of modules with a brief description of what the module corresponds to.
To set the verbosity for a particular module, a folder with the name of the module needs to be created under the Modules folder and then a DWORD value called verbosity. For example: [HKEY_LOCAL_MACHINE\SOFTWARE\BusinessObjects\Suite 12.0\MDA\Log\Modules\APIMODULE] The above will set the verbosity for the module APIMODULE to 10 and the verbosity for module ODBOMODULE to 5 for version MDA 12. Here is a screen shot of how this might look in the registry. ComponentsWithin each module there are a number of components. The components for each module are not listed here. However the names of particular components can easily be discovered by looking at an existing log file. For example, consider the three following lines from a log file: 2009-07-16T03:36:13.484:APIMODULE: CubeViewImpl: CubeViewImpl::toXML Each line starts with a timestamp followed by a colon and then a word that should be familiar from the list of modules given above. The first log line is from the APIMODULE and the second and third are from the ODBOMODULE. There is another colon after the module name. The next word is the name of the component. So the first line is being logged by the CubeViewImpl component, the second by the ODBOMemberSet component and the third by the ODBOCube component. To specify the verbosity for the logging of a particular component, first a folder called Components needs to be created under the specific module folder. Then a further folder with the name of the component needs to be created under the Components folder. Finally a DWORD value with the name Verbosity needs to be created in the folder named after the particular component. Here is an example for the modules and components from the sample log lines above:
Here is APIMODULE is set to full verbosity but nothing will be logged for the CubeViewImpl component. There will be no logging from the ODBOMODULE module except for the ODBOMemberSet component which will log at a verbosity of 5 and the ODBOCube component which will log at a verbosity of 1. Here is a screen shot of what this looks like in the registry: Reuben Cox is in development support at SAP specializing in the NetWeaver web infrastructure components. He was formerly part of Business Objects specializing in OLAP products. |