Demo Discussion
Forum Config Examples Contributions Vulnerabilities
  Discussion forum about ELOG  Not logged in ELOG logo
icon5.gif   Auto-Generate new logbook daily, posted by Ryan Blakeslee on Fri Apr 26 22:29:50 2013 
    icon2.gif   Re: Auto-Generate new logbook daily, posted by Stefan Ritt on Sat Apr 27 11:53:41 2013 
       icon2.gif   Re: Auto-Generate new logbook daily, posted by David Pilgram on Sat Apr 27 13:21:38 2013 
          icon2.gif   Re: Auto-Generate new logbook daily, posted by Stefan Ritt on Sat Apr 27 15:30:28 2013 
          icon2.gif   Re: Auto-Generate new logbook daily, posted by Andreas Luedeke on Mon Apr 29 10:17:54 2013 
             icon2.gif   Re: Auto-Generate new logbook daily, posted by Ryan Blakeslee on Tue May 7 04:57:37 2013 
                icon2.gif   Re: Auto-Generate new logbook daily, posted by David Pilgram on Tue May 7 11:54:23 2013 
                   icon2.gif   Re: Auto-Generate new logbook daily, posted by Andreas Luedeke on Mon May 13 22:31:37 2013 
Message ID: 67494     Entry time: Tue May 7 11:54:23 2013     In reply to: 67493     Reply to this: 67503
Icon: Reply  Author: David Pilgram  Author Email: David.Pilgram@epost.org.uk 
Category: Question  OS: Linux  ELOG Version: 2.5.2 
Subject: Re: Auto-Generate new logbook daily 

Ryan Blakeslee wrote:

Andreas Luedeke wrote:

David Pilgram wrote:

Stefan Ritt wrote:

Ryan Blakeslee wrote:

Hello,

I am currently using ELOG as a daily logbook for work performed for customers.  This is a critical tool and process for 1. Showing customers work history 2. having a searchable knowledge base for future reference.  

Currently, I will create a new log entry, assign the customer using a custom ROPTION in my elog.conf.  This process all works fine, mostly, except I run into the following obstacles (that are all human related.)

1. Many days, there are no log entries to be created for a PARTICULAR customer, and other days there are no long entries to be created for ANY customer.

2. Many days when there is a log entry to be created, it's created by me much later then when the work was performed.  For example, I do a bunch of work Tuesday and Wednesday, but I don't have time to enter all my entries until Thursday.  

2A. In this case, I have to manually go back and edit the log entries with text-editor to adjust the times, dates, and such.

2B. In this case, I have log files with a file-name of THURSDAY (042513a.log) for work entries done on Tues and Wed, so I have to go back and rename the log files for consistency sake (mv 042513a.log 042313a.log).  ** I know this is not a requirement of the program, but I like to have the log filenames consistent with the dates contained in them.

 

All these I admit are human error -- but as a small business owner, I just can't always get to the log entries every day.

 

To overcome this, the manual solution would: at the beginning of each day, create a new log entry -- regardless of work to be performed and updated later.  This would serve as sort of a place holder.

However, I can't commit myself to always create a log entry for every day either.  Again, human error.

 

Is what I would like to be able to do is create a new log entry, every single day, automatically.  I would then have a growing log dir of daily log entries (files) for ever day of the week, most blank but some would then contain data that I enter later-- either at the end- of-day or on a day I have downtime and can commit to administrative work.

My thought is I could probably schedule a cron job do to this, but i'm not completely sure how I would go about auto-populating the incremental ID's, dates, etc.  Second, I don't know if there is a way to do this within ELOG itself, or if there is a built-in mechanism that already covers this.

 

Has anyone run into this, or solved this problem, or can someone kindly point me in the right direction or how I can implement the daily auto creation of logs?

 

Thank you very much in advance!

Actually I would not worry with the 042313a.log files. In a future version of elog they might be replaced by a database or so. I see two options:

  1. Add an attribute of date/time type. You do that with "Type <attribute> = datetime". Then you can assign a certain date or time to each entry you do. That means you can tag an entry with the date of yesterday or so. If you make that date then the main database key (via "List display") it basically replaces your "internal" date.
  2. You can do automatic entries with the "elog" utility coming with the distribution and described here. This you can even run from a cron job. If you submit a new entry from elog, you get automatically the incremented IDs etc. You can use some default values for the attributes, which you can change later.

 Purists look away now.

I have the same issues regarding "catching up" of entries.  So what I do is use the date command to reset the computer's time back to the time that the entry [i]should[/i] have been made.  Say I need to put an entry for last Thursday (today is Saturday 27th),

Firstly I set the clock back by

date 04252200

(I use a time of 22:00 or later as code for a retro-made entry, the date being the important point for me).

Then any entry will have the correct time (sic) and date entry within the file, and the file the expected format of 130425a.log

After Thursday's batch of entries, I then simply reset the clock for the next entry/ies or indeed back to real time.

Mind you, my log files have the format yymmdda.log, whereas you state yours are mmddyya.log, which strikes me as a very high degree of flexibility!

 

---

Nice to meet someone else who gets down to the bare ascii and knows how to edit the xxxxxxa.log files!

Just my two cent:
I would strongly recomment NOT to go back and forth with the system time.
In some cases this can cause you severe problems with your control system.
 
Stefans suggestion works fine for our operations logbook: I've just introduced an attribute "When" and sort my entries according to this attribute.
The line in the config:
Start page = ?rsort=When
takes care that this sorting is the default.
 
The advantage of this approach is in addition, that you keep track of both dates:
the date when the work had been performed and
the date when you've actually entered the information.
Sometimes that turns out to be useful to me to figure out what I did and when ;-)
 
As to editing the bare ascii: I do this a lot, even with sed scripts.
But there is a disclaimer: you can crash elogd with corrupted entries and you may have a hard time figuring out why it crashes.
For example accidentally deleting a digit in a cross reference can create a loop that causes elogd to get non-responsive without error: try to find that!
I would strongly advise not to build any user application build on editing the ascii files. Just use it for system administration.
 
Andreas
--
He who knows others is wise.
He who knows himself is enlightened.
                -- Lao Tsu
 
 
Detect language » English
 

 

Hello Andreas, Stephan and David,

 

Thank you so much for the very insightful feedback -- it's very much appreciated!

 

I took all of the tips and created a solution that encompasses most of the feedback, and I think it solves my problem nicely while adhering  to my desire to keep log filenames in order as well as limiting the risk with moving/renaming, etc.

 

1. First, I have created a cron job that runs daily at 12:01AM, which runs the following command (This will create a new entry as a place-holder at 12:01AM every day) 

 

CODE:

elog -h localhost -p 8080 -l Daily -a Customer=CRON -a Subject="Daily Log - System Generated" -a Hours=New -a TravelHrs="0" -a Author=CRON -a Type="System Generated" -a Status="New" -a "Locale=localhost" -v "Auto-generated log entry."  

 

2. Second, I added the "When" attribute, per Andreas' suggestion.

 

3. Last, I added the recommended sort command to my .cfg which will exclude the auto-generated logs from showing up and cluttering my view; essentially making them invisible.  I sort by type to exclude the system generated types.

 

Now, -- to go back in time and enter my "catch-up" data, I'll use the 'Find' in my menu, and find by type = system generated.  That will pull up all the auto-generated entries.  I'll then open whatever day(s) log(s) and edit them, chose the "when" to be the actual day the log entry is for, and enter the data.

 

I think this is a perfect solution - thanks so much!  PS - Nice to meet you too David -glad to know someone else out there thinks like I do!  :-)

 

 

 

 

 

 

Hi Ryan,

Glad you've got your solution.   Sadly, won't work for me, as my 'catching up' is often as replies to some existing threads, rather than just the need to have the day's work under the day's date.  But useful to know for the future.

As for the computer time switching, I am aware of the issues, it's a stand-alone linux box, I've found elog to be surprisingly tolerant, everything's backed up.  The introduction of a 'When' attribute had better be on new logbooks or introduced at end of year (esp during quiet time) so that existing books don't fail to find what I'm looking for in searches.

As for ascii coding the yymmdda.log file, and the infinate loops, been there, got the tee-shirt.  In all bar one case I've found and corrected the problem, although in one case I became convinced it had to be a 'hidden' character because deleteing and retyping the entry letter by letter cured the issue.

ELOG V3.1.5-fe60aaf