Speaker
V. Fine
(BROOKHAVEN NATIONAL LABORATORY)
Description
Most HENP experiment software includes a logging or tracing API allowing for
displaying in a particular format important feedback coming from the core
application. However, inserting log statements into the code is a low-tech method
for tracing the program execution flow and often leads to a flood of messages in
which the relevant ones are occluded. In a distributed computing environment,
accessing the information via a log-file is no longer applicable and the approach
fails to provide runtime tracing.
Running a job involves a chain of events where many components are involved often
written in diverse languages and not offering a consistent and easily adaptable
interface for logging important events.
We will present an approach based on a new generic layer built on top of a logger
family derived from the Jakarta log4j project that includes log4cxx, log4c, log4perl
packages. This provides consistency across packages and framework.
Additionally, the power of using log4j, is the possibility to enable logging (or
features) at runtime without modifying the application binary or the wrapper layers.
We provide a C++ abstract class library that serves as a proxy between the
application framework and the distributed environment. The approach is designed so
that the debugging statements can remain in shipped code without incurring a heavy
performance cost. Logging equips the developer with as detailed context as necessary
for application failures, from testing, quality assurance to a production mode
limited amount of information. We will explain and show its implementation in the
STAR production environment.
Primary authors
G. Van Buren
(BROOKHAVEN NATIONAL LABORATORY)
Jerome LAURET
(BROOKHAVEN NATIONAL LABORATORY)
V. Fine
(BROOKHAVEN NATIONAL LABORATORY)