Actions
Logging guidelines¶
Framework¶
SLF4J (Simple Logging Facade for Java)¶
Maven¶
No dependency SHOULD be added to the module POM. The slf4j dependency is already defined in the ecard client root POM.
slf4j needs a backend implementation. For the tests, logback-classic is pulled in by the root POM. For production use, the client artifact must pull in a compile dependency on a backend and configure it appropriately.
Preamble¶
import org.slf4j.Logger; import org.slf4j.LoggerFactory; private static final Logger logger = LoggerFactory.getLogger(MYCLASS.class);
Levels¶
Exceptions¶
import org.slf4j.Logger; import org.slf4j.LoggerFactory; private static final Logger logger = LoggerFactory.getLogger(MYCLASS.class); try{ ... } catch (Exception e){ logger.error(ex.getMessage(), ex); }
Or set a descriptive message:
try{ ... } catch (Exception e){ logger.error("Error while reading value X.", ex); }
Messages¶
Messages including APDUs, eCard-API messages, PAOS messages.
import org.slf4j.Logger; import org.slf4j.LoggerFactory; private static final Logger logger = LoggerFactory.getLogger(MYCLASS.class); logger.debug("Message received:\n{}", message); logger.debug("Message sent:\n{}", message);
Events¶
E.g. GUI events.
import org.slf4j.Logger; import org.slf4j.LoggerFactory; private static final Logger logger = LoggerFactory.getLogger(MYCLASS.class); logger.debug("Event: {}", event);
Notes¶
Trace statements as the following example shows are omitted, because there is a slf4j agent which can automate this task.¶
public void foo(Bar b) { logger.trace("Enter function foo: {}", b); ...
Updated by Hans-Martin Haase over 9 years ago · 4 revisions