1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 <2013> 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 | Index | 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 <2013> 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: Electronic Logbooks - OLog |
From: | Theo Larrieu <[email protected]> |
To: | "Dalesio, Leo" <[email protected]> |
Cc: | EPICS Tech-Talk <[email protected]> |
Date: | Wed, 31 Jul 2013 11:13:53 -0400 |
Olog looks good. I think a defining characteristic of a good logbook system is an API that makes it simple to log critical information directly from the programs and scripts that operators and system experts use. Of the 600,000+ log entries made during the past decade of JLab operations, only ~3% were made from the web form, the remainder were submitted by API clients. The approach we took at Jlab for the current logbook system was to utilize the open source Drupal Content Management System and implement the Jlab-specific business logic as a handful of custom modules. The huge reservoir of off-the-shelf modules from drupal.org gave us revision control, faceted search via apache SOLR/Lucene, rule-based actions (triggers), taxonomy-term-based entry classification, and more for free (little-to-no code development required). While we chose MySQL for the back-end relational database, Drupal also supports Postgres and (theoretically) even Oracle. We focused our development efforts on the API. In addition to the web-form, programmatic entries can be made by the HTTP PUT of an XML file to the web server. This XML file is defined and validated by a formal schema, but clients need not worry about it because we have provied API wrappers around it for Java, C++, Perl, and Python along with a command-line tool that can be invoked from any script. So from a Java program for example, a basic logentry can be as simple as public static void main(String[] args) throws LogException { LogEntry entry = new LogEntry("Hello World", "TLOG"); long lognumber = entry.submitNow(); System.out.println("Successfully submitted log entry number: " + lognumber); } Or, from the command-line the hello world would be: logentry -t "Hello World" -l TLOG The logbooks server is only-accessible by JLAB users, but some info is available. I'm happy to share war stories/lessons-learned with anyone contemplating a similar approach. On 7/30/2013 6:35 AM, Dalesio, Leo wrote: It should be noted that this log book is under very active development. It will be deployed at NSLS II at the operator and commissioning log book. Of note, attachments to the log book are being standardized to be recognized and operated on by other applications. One example is a log entry from a CSS screen will attach the list of PVs. From the CSS log viewer, you can open the attachment in a data browser and see the PVs around that time. There is a web viewer. There is also a python callable interface for making entries. We are using this to allow our physics and experiment control applications to make entries directly from their scripts. Bob ________________________________________ From: [email protected] [[email protected]] on behalf of Ralph Lange [[email protected]] Sent: Tuesday, July 30, 2013 6:14 AM To: EPICS Tech-Talk Subject: Re: Electronic Logbooks There's also oLog [1], which is part of AccelUtils [2], a recent collaborative tools approach between BNL, FRIB, SLAC, and HZB. REST based, database backend, with CSS integration. Regards, ~Ralph [1] http://olog.sourceforge.net [2] http://accelutils.sourceforge.net On 29.07.2013 16:15, Miroslav Pavleski wrote:Hi We are currently evaluating Electronic Logbooks solutions for ESS. I would be really grateful if you provide references to some existing solutions. With Regards, Miroslav |