SLF4J project Ceki Gülcü Jakarta Commons Logging (JCL) –Same problem domain –Well-established library So why do we re-invent the wheel? Because.

Slides:



Advertisements
Similar presentations
Tim Hodson Re-imagining the virtual library CASE STUDY One:
Advertisements

1 Logback project Ceki Gülcü & Sébastien Pennec. 2 ~ No revolution, only evolution. log4j is no longer being actively developed The same basic plumbing.
Object Oriented Programming Lect. Dr. Daniel POP Universitatea de Vest din Timişoara Facultatea de Matematică şi Informatică.
Apache Struts Technology
1 Generic logging layer for the distributed computing by Gene Van Buren Valeri Fine Jerome Lauret.
Spring, Hibernate and Web Services 13 th September 2014.
BEA Confidential. | 1 Version Control for a Modern World Garrett Rooney, Senior Software Engineer (and Subversion committer), CollabNet Inc. June 2006.
Copyright QOS.ch 1 10 reasons to use logback Ceki Gülcü & Sébastien Pennec.
Domain Specific Kit for Business Rule Management By Netsoft.
UNIT-V The MVC architecture and Struts Framework.
Graph 8 a. Graph b. Domain _________ c. Range __________
Graphing Piecewise Functions
TRADE SMART Zihao Yu Kevin Bobsein Ashrith Kumar Marpaka Hanzhi Wu Instructor : Prof. Ivan Marsic Partial fulfillment of the course Software Engineering.
RUG Australia meeting 2012 Feb 6, V Tiers & sequencing suppliers Tiers and sequencing and load balancing  Tiers = groups of suppliers.
Logging Best Practices Dubna 2012 Benedicto Fernandez Software Engineer CERN / GS-AIS.
Logging with log4j. Kādā veidā var uzzināt kas notiek programmas iekšā ???
Logging with Log4j. Introduction Logging - chronological and systematic record of data processing events in a program. Possible goals: Create an audit.
© 2008 Dr. Paul Walcott – The University of the West Indies: Cave Hill CampusDr. Paul Walcott COMP6325 Advanced Web Technologies Dr. Paul Walcott The University.
Zhonghua Qu and Ovidiu Daescu December 24, 2009 University of Texas at Dallas.
 Copyright 2006 Digital Enterprise Research Institute. All rights reserved. Collaborative Building of Controlled Vocabularies Crosswalks Mateusz.
Pattern Oriented Software Architecture for Networked Objects Based on the book By Douglas Schmidt Michael Stal Hans Roehnert Frank Buschmann.
Putting What We Learned Into Context – WSGI and Web Frameworks A290/A590, Fall /16/2014.
LogBox Enterprise Logging Brad Wood
Dali JPA Tools. About Dali Dali JPA Tools is an Eclipse Web Tools Platform sub-Project Dali 1.0 is a part of WTP 2.0 Europa coordinated release Goal -
Java, Web Applications, and OSS Experience Prakash Malani Copyright © 2003.
Abstraction IS 101Y/CMSC 101 Computational Thinking and Design Tuesday, September 17, 2013 Marie desJardins University of Maryland, Baltimore County.
Struts: An Insiders View October Abstract Struts is the de facto standard framework for Java web applications, but where did it come from, and where.
Deployment with Karaf and ACE
Design Patterns Introduction What is a Design Pattern? Why were they developed? Why should we use them? How important are they?
Content Storage with Apache Jackrabbit , Jukka Zitting.
BOF # The Struts Framework Community The Struts Framework Community Craig McClanahan.
Up to Speed with Java Content Repository API and Jackrabbit > Alexandru Popescu InfoQ.com > Jukka Zitting Day.
Apache Jakarta Project. What is Jakarta’s mission Jakarta is a Project of the Apache Software Foundation, charged with the creation and maintenance of.
! October 20, 2012 Javolution C++ They call him Ginger! « It looks like Java, it tastes likes Java… but it is C++ »
Introduction to Enterprise Technologies Presented by Kushan Athukorala.
Enterprise Cargo Management System (ECMS) SE18S07.
CPSC 533 Project Status Reid Holmes Andrew Chan March 17, 2003.
Katari Globant 2008 (update to 2010). Katari  Katari is a framework to use as a starting point to develop new web applications.  Incorporates architecture,
Clotho in Kepler Help sharing Clotho’s awesomeness to the world Use scientific workflow to create, reuse, share and extend Clotho’s operations.
Model Design using Hierarchical Web-Based Libraries F. Bernardi Pr. J.F. Santucci {bernardi, University of Corsica SPE Laboratory.
Reviews Crawler (Detection, Extraction & Analysis) FOSS Practicum By: Syed Ahmed & Rakhi Gupta April 28, 2010.
Copyright 2007 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Introduction to Data Access with Spring.
OpenMRS Create New Module.
Introduction – ORM, Helloworld Application
Fundamentals of MyBATIS
Fast Track Policy & Claim Services Module-1:User Management Anand Kumar Prajapati Anubha Asna Nagina Salma Shaik Peter Ernesto Alyosha Soham Gupta Sourav.
Repository-specific Spoke Scripts Content Repository JSR-170/283 Content Repository for Java Technology API Normalized H&S METS Files METS Import/ExportMETS.
Google Code Libraries Dima Ionut Daniel. Contents What is Google Code? LDAPBeans Object-ldap-mapping Ldap-ODM Bug4j jOOR Rapa jongo Conclusion Bibliography.
By Jonathan Smith. Road Map Introduction Company Information Project Overview Java Web Design and Development Summary Relation to IUP Acknowledgments.
© 2001 By Default! A Free sample background from Slide 1 Motivation CMW logging Real-Time Task CMW Server Logging thread.
Copyright © 2010 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture. ODS Tools – Fannie Mae.
Moon Fleet Management Six Sigma Supervisor: Nguyễn Trường Long Members: - Lê Hoàng - Nguyễn Đăng Phượng - Nguyễn Thanh Tùng - Phạm Phương Duy - Vũ Quang.
Enterprise Java v050228MVC1 Model, View, Controller Web Architecture.
CS520 Web Programming Bits and Pieces of Web Programming (I) Chengyu Sun California State University, Los Angeles.
CS520 Web Programming Bits and Pieces of Web Programming (I) Chengyu Sun California State University, Los Angeles.
Autocloud by Bryan Rosander. Motivation Cloud computing makes vast computing resources available at a reasonable price on an as-needed basis Configuring.
Agenda:- DevOps Tools Chef Jenkins Puppet Apache Ant Apache Maven Logstash Docker New Relic Gradle Git.
Product Training Program
More Sophisticated Behavior
October 2nd – Dictionary ADT
Gang of Four’s Design Patterns for Microservices
A Lot of Dissing – Manu’s PhD Thesis
Programmer’s Solutions
What’s changed in the Shibboleth 1.2 Origin
Chengyu Sun California State University, Los Angeles
Chengyu Sun California State University, Los Angeles
Chapter 8, Design Patterns Introduction
XML Parsers.
Dependency Inversion principle
Chapter 8, DesignPatterns Facade
Presentation transcript:

SLF4J project Ceki Gülcü

Jakarta Commons Logging (JCL) –Same problem domain –Well-established library So why do we re-invent the wheel? Because details of implementation matter.

SLF4J SLF4J: Simple Logging Façade for Java Problem definition: 1.Abstract logging frameworks 2.Automatically/dynamically select underlying logging framework (in JCL) 2.Manually/statically select underlying logging framework (in SLF4J)

The API 1: import org.slf4j.Logger; 2: import org.slf4j.LoggerFactory; 3: 4: public class Wombat { 5: 6: final Logger logger = LoggerFactory.getLogger(Wombat.class); 7: Integer t; 8: Integer oldT; 9: 10: public void setTemperature(Integer temperature) { 11: 12: oldT = t; 13: t = temperature; 14: 15: logger.debug("Temperature set to {}. Old temperature was {}.", t, oldT); 16: 17: if(temperature.intValue() > 50) { 18: logger.info("Temperature has risen above 50 degrees."); 19: } 20: } 21: }

Parameterized logging inefficient syle: logger.debug("Hello "+name); old style (efficient): if(logger.isDebugEnabled()) { logger.debug("Hello "+name); } new style (efficient): logger.debug("Hello {}", name);

Parameterized logging inefficient syle logger.debug("Hello "+name); old style: if(logger.isDebugEnabled()) { logger.debug("Hello "+name); } new style: logger.debug("Hello {}", name);

Marker API Marker hibMarker = MarkerFactory.getMarker(“hibernate”); Marker sqlMarker = MarkerFactory.getMarker(“sql”); // organize markers in a graph sqlMarker.add(hibMarker); logger.info(sqlMarker, “select from...”);

Other supported features MDC (for log4j, logback and j.u.l) Markers

Bridging legacy systems

Using SLF4J: Apache Archiva Apache Directory Apache FTPServer Apache Geronimo Apache Graffito Apache Jetspeed Apache Jackrabbit Apache Mina Apache Qpid Apache Sling Apache Tapestry Apache Wicket Aperture Apogee Artifactory Bitronix DbUnit Display tag GMaven Gradle GreenMail GumTree H2 Database HA-JDBC Hibernate Igenko Jabsorb Jetty v6 jLynx JMesa JODConverter JTrac JWebUnit 2.x LIFERAY log4jdbc Magnolia MRCP4J Mindquarry Mugshot Mule Novocode NetCDF OpenRDF Penrose Proximity PZFileReader QuickFIX/J SMSJ Spring-OSGi StreamBase TimeFinder WTFIGO YASL Xooctory

Migrator

Conclusion Simplicity is powerful. -- Evan Williams Robustness, particularly in the context of logging, is a killer feature and simplicity implies robustness.