60 likes | 94 Views
ACS Course ACS logging in Java. H. Sommer. Plain JDK Logger with ACS behind the scenes. Application code (component or comp-client). getLogger. uses. ContainerServices#getLogger(). java.util.logging.Logger info(String msg) log(Level, String msg, Throwable). creates & configures.
E N D
ACS CourseACS logging in Java H. Sommer NRAO - Socorro July, 2004
Plain JDK Loggerwith ACS behind the scenes Application code (component or comp-client) getLogger uses ContainerServices#getLogger() • java.util.logging.Logger • info(String msg) • log(Level, String msg, Throwable) creates & configures forwards messages remote ACS logging service Central log display VM-local ACS log handler forwards (XML) ALMA Common Software course
Code Snippetsfrom jcontexmpl/HelloLampImpl m_logger.info("sayHello called..."); catch (Exception ex) { m_logger.log(Level.SEVERE, "ex in setLampBrightness impl", ex); } ALMA Common Software course
JDK Logging API • Standard since JDK 1.4 • Easy API (you’ll only need the Logger class) • short methods with level names (finest, ... info, warning, severe) each taking a message string. • More powerful methods log, logp, for logging of values etc. • Flexible configuration for filtering and formatting (done by ACS) • Automatic retrieval of method names, line numbers etc (not guaranteed to work always for all VMs though…) • API: http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/package-summary.html • More info: http://java.sun.com/j2se/1.4.2/docs/guide/util/logging/overview.html ALMA Common Software course
ACS logging configuration • Standard configuration file used: module acsjlog/src/almalogging.propertiesacsStartContainer –java frodoContainer • User may specify different properties file:abeansStart -endorsed -Djava.util.logging.config.file=/x/y/mylogging.properties frodoContainer • Suppress log levels below INFO (or any other level):alma.acs.logging.AcsLoggingHandler.level = INFO • Console output level controlled by separate property:java.util.logging.ConsoleHandler.level = INFO ALMA Common Software course
Future of Java ACS Logging • The Logger returned from ContainerServices#getLogger is already configured with a “logger-namespace” unique for the Java component that requests it. • We could extend that namespace concept to group or filter log entries by the components that produced them • Log levels for suppressing unimportant messages could be set dynamically, e.g. by the Administrator Client; individually for all components and containers in the system… ALMA Common Software course